OpenSceneGraph  3.5.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
osgShadow::ConvexPolyhedron Class Reference

Classes

struct  Face
 

Public Types

typedef std::vector< osg::Vec3dVertices
 
typedef std::list< FaceFaces
 

Public Member Functions

 ConvexPolyhedron (void)
 
 ConvexPolyhedron (const osg::Matrix &matrix, const osg::Matrix &inverse, const osg::BoundingBox &bb=osg::BoundingBox(-1,-1,-1, 1, 1, 1))
 
FacecreateFace ()
 
void clear ()
 
void setToUnitFrustum (bool withNear=true, bool withFar=true)
 
void setToBoundingBox (const osg::BoundingBox &bb)
 
void transform (const osg::Matrix &matrix, const osg::Matrix &inverse)
 
void transformClip (const osg::Matrix &matrix, const osg::Matrix &inverse)
 
bool mergeFaces (const Face &face0, const Face &face1, Face &face)
 
void mergeCoplanarFaces (const double &plane_normal_dot_tolerance=0.0, const double &plane_distance_tolerance=0.0)
 
void removeDuplicateVertices (void)
 
bool checkCoherency (bool checkForNonConvexPolys=false, const char *errorPrefix=NULL)
 
void cut (const osg::Polytope &polytope)
 
void cut (const ConvexPolyhedron &polytope)
 
void cut (const osg::Plane &plane, const std::string &name=std::string())
 
void extrude (const osg::Vec3d &offset)
 
void translate (const osg::Vec3d &offset)
 
void getPolytope (osg::Polytope &polytope) const
 
void getPoints (Vertices &vertices) const
 
osg::BoundingBox computeBoundingBox (const osg::Matrix &m=osgShadow::ConvexPolyhedron::defaultMatrix) const
 
osg::GeometrybuildGeometry (const osg::Vec4d &colorOutline, const osg::Vec4d &colorInside, osg::Geometry *useGeometry=NULL) const
 
bool dumpGeometry (const Face *face=NULL, const osg::Plane *plane=NULL, ConvexPolyhedron *basehull=NULL, const char *filename="convexpolyhedron.osg", const osg::Vec4d &colorOutline=osg::Vec4(0, 1, 0, 0.5), const osg::Vec4d &colorInside=osg::Vec4(0, 1, 0, 0.25), const osg::Vec4d &faceColorOutline=osg::Vec4(0, 0, 1, 0.5), const osg::Vec4d &faceColorInside=osg::Vec4(0, 0, 1, 0.25), const osg::Vec4d &planeColorOutline=osg::Vec4(1, 0, 0, 0.5), const osg::Vec4d &planeColorInside=osg::Vec4(1, 0, 0, 0.25), const osg::Vec4d &baseColorOutline=osg::Vec4(0, 0, 0, 0.5), const osg::Vec4d &baseColorInside=osg::Vec4(0, 0, 0, 0.25)) const
 

Static Public Member Functions

static int pointsColinear (const osg::Vec3d &va, const osg::Vec3d &vb, const osg::Vec3d &vc, const double &edge_normal_dot_tolerance=0.0, const double &null_edge_length_tolerance=0.0)
 
static int isFacePolygonConvex (Face &face, bool ignoreCollinearVertices=true)
 

Public Attributes

Faces _faces
 

Static Public Attributes

static const osg::MatrixdefaultMatrix
 

Member Typedef Documentation

Constructor & Destructor Documentation

osgShadow::ConvexPolyhedron::ConvexPolyhedron ( void  )
inline
osgShadow::ConvexPolyhedron::ConvexPolyhedron ( const osg::Matrix matrix,
const osg::Matrix inverse,
const osg::BoundingBox bb = osg::BoundingBox(-1,-1,-1, 1, 1, 1) 
)

Member Function Documentation

osg::Geometry* osgShadow::ConvexPolyhedron::buildGeometry ( const osg::Vec4d colorOutline,
const osg::Vec4d colorInside,
osg::Geometry useGeometry = NULL 
) const
bool osgShadow::ConvexPolyhedron::checkCoherency ( bool  checkForNonConvexPolys = false,
const char *  errorPrefix = NULL 
)
void osgShadow::ConvexPolyhedron::clear ( )
inline
osg::BoundingBox osgShadow::ConvexPolyhedron::computeBoundingBox ( const osg::Matrix m = osgShadow::ConvexPolyhedron::defaultMatrix) const
Face& osgShadow::ConvexPolyhedron::createFace ( )
inline
void osgShadow::ConvexPolyhedron::cut ( const osg::Polytope polytope)
void osgShadow::ConvexPolyhedron::cut ( const ConvexPolyhedron polytope)
void osgShadow::ConvexPolyhedron::cut ( const osg::Plane plane,
const std::string &  name = std::string() 
)
bool osgShadow::ConvexPolyhedron::dumpGeometry ( const Face face = NULL,
const osg::Plane plane = NULL,
ConvexPolyhedron basehull = NULL,
const char *  filename = "convexpolyhedron.osg",
const osg::Vec4d colorOutline = osg::Vec4(0, 1, 0, 0.5),
const osg::Vec4d colorInside = osg::Vec4(0, 1, 0, 0.25),
const osg::Vec4d faceColorOutline = osg::Vec4(0, 0, 1, 0.5),
const osg::Vec4d faceColorInside = osg::Vec4(0, 0, 1, 0.25),
const osg::Vec4d planeColorOutline = osg::Vec4(1, 0, 0, 0.5),
const osg::Vec4d planeColorInside = osg::Vec4(1, 0, 0, 0.25),
const osg::Vec4d baseColorOutline = osg::Vec4(0, 0, 0, 0.5),
const osg::Vec4d baseColorInside = osg::Vec4(0, 0, 0, 0.25) 
) const
void osgShadow::ConvexPolyhedron::extrude ( const osg::Vec3d offset)
void osgShadow::ConvexPolyhedron::getPoints ( Vertices vertices) const
void osgShadow::ConvexPolyhedron::getPolytope ( osg::Polytope polytope) const
static int osgShadow::ConvexPolyhedron::isFacePolygonConvex ( Face face,
bool  ignoreCollinearVertices = true 
)
static
void osgShadow::ConvexPolyhedron::mergeCoplanarFaces ( const double &  plane_normal_dot_tolerance = 0.0,
const double &  plane_distance_tolerance = 0.0 
)
bool osgShadow::ConvexPolyhedron::mergeFaces ( const Face face0,
const Face face1,
Face face 
)
static int osgShadow::ConvexPolyhedron::pointsColinear ( const osg::Vec3d va,
const osg::Vec3d vb,
const osg::Vec3d vc,
const double &  edge_normal_dot_tolerance = 0.0,
const double &  null_edge_length_tolerance = 0.0 
)
static
void osgShadow::ConvexPolyhedron::removeDuplicateVertices ( void  )
void osgShadow::ConvexPolyhedron::setToBoundingBox ( const osg::BoundingBox bb)
void osgShadow::ConvexPolyhedron::setToUnitFrustum ( bool  withNear = true,
bool  withFar = true 
)
void osgShadow::ConvexPolyhedron::transform ( const osg::Matrix matrix,
const osg::Matrix inverse 
)
void osgShadow::ConvexPolyhedron::transformClip ( const osg::Matrix matrix,
const osg::Matrix inverse 
)
void osgShadow::ConvexPolyhedron::translate ( const osg::Vec3d offset)

Member Data Documentation

Faces osgShadow::ConvexPolyhedron::_faces
const osg::Matrix& osgShadow::ConvexPolyhedron::defaultMatrix
static

The documentation for this class was generated from the following file:

osg logo
Generated at Wed Nov 11 2015 22:15:06 for the OpenSceneGraph by doxygen 1.8.10.