Files
dorayme/source/pattern/gradientpattern.h

38 lines
767 B
C++

/*
* DoRayMe - a quick and dirty Raytracer
* Gradient Pattern header
*
* Created by Manoël Trapier
* Copyright (c) 2020 986-Studio.
*
*/
#ifndef DORAYME_GRADIENTPATTERN_H
#define DORAYME_GRADIENTPATTERN_H
#include <pattern.h>
#include <stdio.h>
class GradientPattern : public Pattern
{
public:
GradientPattern(Colour a, Colour b) : Pattern(a, b) { };
Colour patternAt(Tuple point)
{
Tuple distance = this->b - this->a;
double fraction = point.x - floor(point.x);
Tuple ret = this->a + distance * fraction;
return Colour(ret.x, ret.y, ret.z);
}
void dumpMe(FILE *fp) {
fprintf(fp, "\"Type\": \"Gradient\",\n");
Pattern::dumpMe(fp);
}
};
#endif /* DORAYME_GRADIENTPATTERN_H */