00001 #ifndef OSGDVRVertex_H
00002 #define OSGDVRVertex_H
00003
00004 #include <vector>
00005 #include <list>
00006
00007 #include <OSGVector.h>
00008 #include <OSGPlane.h>
00009
00010 OSG_BEGIN_NAMESPACE
00011
00013 class DVRVertex
00014 {
00015
00016 public:
00017
00019 DVRVertex(void);
00020
00022 DVRVertex(const DVRVertex &vertex);
00023
00025 ~DVRVertex(void);
00026
00028
00031 void calculatePlaneDistance(const Plane &plane);
00032
00034
00037 void calculatePlaneDistanceTransformed(const Plane &plane);
00038
00040
00043 void calculatePlaneDistance(const Plane &plane, const Matrix &transform);
00044
00048 bool isBehindPlane(float dist2RefPlane, bool &switched);
00049
00051 bool isBehindPlane(float dist2RefPlane);
00052
00056
00059 bool isCloser(float distance);
00060
00062 void dump(void) const;
00063
00064 public:
00065
00067 Pnt3f pos;
00068
00070 std::vector<Int32> adjacentTriangles;
00071
00072 public:
00073
00075 bool behindPlane;
00076
00078
00079
00081 Real32 refPlaneDistance;
00082
00084 Pnt3f transformedPos;
00085 };
00086
00087 OSG_END_NAMESPACE
00088
00089 #endif
00090
00091
00092
00093