class Primitive: public Object
{
protected:
RGBColor color; // barva primitiva
double surfaceProperty[5]; // koeficienti povrsine
public:
RGBColor getColor() { return color; };
void setColor(double color[3]);
double getProp(int i) { return surfaceProperty[i]; }
void setSurfaceProperties(double surfaceProperty[5]);
double closestIntersection(const double *x, int xNum) const;
virtual ~ Primitive();
virtual double nearestIntersection( vec3& rayDir) const = 0;
virtual void Describe(int indent) = 0;
virtual vec3& p) const = 0;
};