Rectangle.h

Go to the documentation of this file.
00001 /* $Id:$ */
00002 
00003 #ifndef __RECTANGLE_H
00004 #define __RECTANGLE_H
00005 
00006 #include <esg/geometry/Polygon.h>
00007 
00008 namespace esg {
00009 
00014 class Rectangle : public Polygon {
00015 protected:
00016         double  _width;
00017         double  _height;
00018         Vector3 _xDir;
00019         Vector3 _yDir;
00020         
00021 protected:
00022         virtual void _duplicate_attributes (const Geometry&);
00023         virtual void _rotateX   (float /* angle */);
00024     virtual void _rotateY   (float /* angle */);
00025         virtual void _rotateZ   (float /* angle */);
00026         virtual void _rotate    (float /* angle */, const Vector3& /* axis */);
00027         virtual void _rotate    (const Matrix3&);
00028         virtual void _translate (float /* x */, float /* y */, float /* z */);
00029         virtual void _transform (const Matrix4&);
00030         virtual void _scale     (float);
00031     
00032 public:
00043         Rectangle (const Vector3& corner,
00044                    const Vector3& u,
00045                    const Vector3& v,
00046                    const Vector2  uva[4],
00047                    bool           oneside);
00048 
00060         Rectangle (const Vector3& corner,
00061                    const Vector3& u,
00062                    const Vector3& v,
00063                    const Vector2  uva[4],
00064                    bool           oneside,
00065                    const Vector3& normal);
00066 
00067         virtual void randomSample (int mask, PointEnv& pe, double* pdf);
00068 };
00069     
00070 }; // namespace
00071 
00072 #endif // __RECTANGLE_H

Generated on Wed Jun 28 12:24:28 2006 for esg by  doxygen 1.4.6