src/rcrt/math/HCoord4D.h

Go to the documentation of this file.
00001 #ifndef HCOORD4D_H_
00002 #define HCOORD4D_H_
00003 
00004 #include "Point3D.h"
00005 #include "Vec3D.h"
00006 
00007 namespace rcrt
00008 {
00009 
00010 class HCoord4D
00011 {
00012 private:
00013         float values[4];
00014         void assign(const HCoord4D& vec);
00015                 
00016         public:
00017                 HCoord4D();
00018                 HCoord4D(float xc, float yc, float zc, float wc);
00019                 HCoord4D(const HCoord4D& coords);
00020                 HCoord4D(const Point3D& p);
00021                 HCoord4D(const Vec3D& vec);
00022                 virtual ~HCoord4D();
00023                 
00024                 const HCoord4D& operator= (const HCoord4D& coords);
00025                 HCoord4D operator+ (const HCoord4D& coords) const;
00026                 HCoord4D operator- (const HCoord4D& coords) const;
00027                 float operator* (const HCoord4D& coords) const;
00028                 
00033                 const HCoord4D& normalize();
00034                 
00038                 HCoord4D normalized() const;
00039                 
00044                 bool isNormalized() const;
00045                 
00049                 float norm() const;
00050                 
00054                 Point3D toPoint3D() const;
00055                 
00056                 const float& x() const;
00057                 const float& y() const;
00058                 const float& z() const;
00059                 const float& w() const;
00060 };
00061 
00062 }
00063 
00064 #endif /*HCOORD4D_H_*/

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3