Ring.h

Go to the documentation of this file.
00001 
00006 #ifndef Ring_h
00007 #define Ring_h
00008 
00009 #include "Vector.h"
00010 #include "Primitive.h"
00011 class HitRecord;
00012 class Point;
00013 class RenderContext;
00014 
00019 class Ring : public Primitive {
00020  public:
00021     Ring(Material* material, const Point &center, const Vector& n, const double r1, const double r2 = 0.0);
00022     virtual ~Ring();
00023 
00024     virtual void getBounds(BoundingBox& bbox) const;
00025     virtual void intersect(HitRecord& hit, const RenderContext& context, const Ray& ray) const;
00026     virtual void normal(Vector& normal, const RenderContext& context,
00027                         const Point & hitpos, const Ray& ray, const HitRecord& hit) const;
00028 
00029  private:
00030     Ring(const Ring&);
00031     Ring& operator=(const Ring&);
00032 
00033     Point center;
00034     Vector norm;
00035     double r1Sq;
00036     double r2Sq;
00037     double radius1;
00038     double radius2;
00039 
00040     double d;
00041 };
00042 
00043 #endif
00044 

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