00001
00002
00003 #ifndef __FDH_6_H
00004 #define __FDH_6_H
00005
00006 #include <esg/SGAttribute.h>
00007 #include <esg/List.h>
00008 #include <esg/geometry/FDH.h>
00009
00010 namespace esg {
00011
00016 class OGSCENE_EXPORT FDH6 : public FDH {
00017 public:
00018 static const unsigned DIRS;
00019 static const unsigned SIZE;
00020 static const float FDHMat[6][3];
00021
00022 protected:
00023 virtual Mesh* _mesh (int ) const;
00024 virtual Vector3d* _get_corners(unsigned&,
00025 unsigned(*)[100],
00026 unsigned[]) const;
00027 FDH6 () : FDH(DIRS, FDHMat) {}
00028
00029 public:
00035 FDH6 (List<SceneGraphObject>& list)
00036 : FDH(DIRS, FDHMat, list) {}
00037
00044 FDH6 (const Geometry& geom1, const Geometry& geom2)
00045 : FDH(DIRS, FDHMat, geom1, geom2) {}
00046
00052 FDH6 (const Geometry& geom)
00053 : FDH(DIRS, FDHMat, geom) {}
00054
00060 FDH6 (const float values[6])
00061 : FDH(DIRS, FDHMat, values) {}
00062
00063 virtual void rayIntersection (PointEnv* pPE,
00064 int mask,
00065 const Vector3& origin,
00066 const Vector3& direction,
00067 float maxDist = MAXFLOAT);
00068
00069 virtual bool mapToUV (const Vector3& v, Vector2& uv);
00070
00071 virtual Geometry* clone (const Matrix4* pTrMat) const;
00072
00079 virtual void setExtentX(double min, double max) {
00080 _values[0] = max;
00081 _values[3] = -min;
00082 }
00083
00090 virtual void setExtentY(double min, double max) {
00091 _values[1] = max;
00092 _values[4] = -min;
00093 }
00094
00101 virtual void setExtentZ(double min, double max) {
00102 _values[2] = max;
00103 _values[5] = -min;
00104 }
00105
00106 };
00107
00108 };
00109
00110 #endif // __FDH_6_H