17 #ifndef OSGSHADOW_CONVEXPOLYHEDRON
18 #define OSGSHADOW_CONVEXPOLYHEDRON 1
20 #include <osg/Geometry>
21 #include <osg/Polytope>
32 namespace makOsgShadowFX
55 const osg::BoundingBox& bb = osg::BoundingBox(-1,-1,-1,1,1,1));
63 void transform(
const osg::Matrix& matrix,
const osg::Matrix& inverse);
64 void transformClip(
const osg::Matrix& matrix,
const osg::Matrix& inverse);
68 (
const Face & face0,
const Face & face1, Face &
face );
71 const double & plane_distance_tolerance = 0.0 );
77 (
const osg::Vec3d & va,
const osg::Vec3d & vb,
const osg::Vec3d & vc,
78 const double & edge_normal_dot_tolerance = 0.0,
79 const double & null_edge_length_tolerance = 0.0 );
84 (
bool checkForNonConvexPolys =
false,
const char * errorPrefix = NULL );
87 void cut(
const osg::Polytope& polytope);
102 osg::Geometry*
buildGeometry(
const osg::Vec4d& colorOutline,
103 const osg::Vec4d& colorInside,
104 osg::Geometry* useGeometry = NULL )
const;
108 const osg::Plane * plane = NULL,
110 const char * filename =
"convexpolyhedron.osg",
111 const osg::Vec4d& colorOutline = osg::Vec4( 0,1,0,0.5 ),
112 const osg::Vec4d& colorInside = osg::Vec4( 0,1,0,0.25 ),
113 const osg::Vec4d& faceColorOutline = osg::Vec4( 0,0,1,0.5 ),
114 const osg::Vec4d& faceColorInside = osg::Vec4( 0,0,1,0.25 ),
115 const osg::Vec4d& planeColorOutline = osg::Vec4( 1,0,0,0.5 ),
116 const osg::Vec4d& planeColorInside = osg::Vec4( 1,0,0,0.25 ),
117 const osg::Vec4d& baseColorOutline = osg::Vec4( 0,0,0,0.5 ),
118 const osg::Vec4d& baseColorInside = osg::Vec4( 0,0,0,0.25 ) )
const;