Primitive.h

Go to the documentation of this file.
00001 
00005 #ifndef Primitive_h
00006 #define Primitive_h
00007 
00008 #include "Object.h"
00009 class Material;
00010 class Point;
00011 class Vector;
00012 
00013 class Primitive : public Object {
00014  public:
00015 
00016     Primitive(Material* matl);    
00017     virtual ~Primitive();
00018 
00023     virtual void preprocess();
00024 
00028     virtual void intersect(HitRecord& hit, const RenderContext& context, const Ray& ray) const = 0;
00029 
00034     virtual void normal(Vector& normal, const RenderContext& context,
00035                         const Point& hitpos, const Ray& ray, const HitRecord& hit) const = 0;
00036 
00040     virtual void computeUVW(Vector& uvw, const RenderContext& context,
00041                             const Ray& ray, const HitRecord& hit) const;
00042 
00043  protected:
00044     Material* matl;
00045 
00046  private:
00047     Primitive(const Primitive&); 
00048     Primitive& operator=(const Primitive&); 
00049 };
00050 
00051 
00052 #endif
00053 

Generated on Tue Jan 29 21:34:53 2008 for specter by  doxygen 1.4.6