openscenegraph
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
osg::KdTree Class Reference
Inheritance diagram for osg::KdTree:
osg::Shape osg::Object osg::Referenced

Classes

struct  KdNode
struct  LineSegmentIntersection
struct  Triangle

Public Types

typedef std::vector
< LineSegmentIntersection
LineSegmentIntersections
typedef int value_type
typedef std::vector< KdNodeKdNodeList
typedef std::vector< TriangleTriangleList

Public Member Functions

 KdTree ()
 KdTree (const KdTree &rhs, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 META_Shape (osg, KdTree) struct OSG_EXPORT BuildOptions
virtual bool build (BuildOptions &buildOptions, osg::Geometry *geometry)
virtual bool intersect (const osg::Vec3d &start, const osg::Vec3d &end, LineSegmentIntersections &intersections) const
int addNode (const KdNode &node)
KdNodegetNode (int nodeNum)
const KdNodegetNode (int nodeNum) const
KdNodeListgetNodes ()
const KdNodeListgetNodes () const
void setVertices (osg::Vec3Array *vertices)
const osg::Vec3ArraygetVertices () const
unsigned int addTriangle (const Triangle &tri)
TrianglegetTriangle (unsigned int i)
const TrianglegetTriangle (unsigned int i) const
TriangleListgetTriangles ()
const TriangleListgetTriangles () const
- Public Member Functions inherited from osg::Shape
 Shape ()
 Shape (const Shape &sa, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const =0
virtual Objectclone (const CopyOp &) const =0
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual void accept (ShapeVisitor &)=0
virtual void accept (ConstShapeVisitor &) const =0
- Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void setName (const std::string &name)
void setName (const char *name)
const std::string & getName () const
void setDataVariance (DataVariance dv)
DataVariance getDataVariance () const
virtual void computeDataVariance ()
void setUserDataContainer (osg::UserDataContainer *udc)
osg::UserDataContainergetUserDataContainer ()
const osg::UserDataContainergetUserDataContainer () const
osg::UserDataContainergetOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
virtual ReferencedgetUserData ()
virtual const ReferencedgetUserData () const
template<typename T >
bool getUserValue (const std::string &name, T &value) const
template<typename T >
void setUserValue (const std::string &name, const T &value)
virtual void resizeGLObjectBuffers (unsigned int)
virtual void releaseGLObjects (osg::State *=0) const
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Attributes

osg::ref_ptr< osg::Vec3Array_vertices
KdNodeList _kdNodes
TriangleList _triangles

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()
- Protected Member Functions inherited from osg::Shape
virtual ~Shape ()

Detailed Description

Implementation of a kdtree for Geometry leaves, to enable fast intersection tests.

Member Typedef Documentation

typedef std::vector< KdNode > osg::KdTree::KdNodeList
typedef std::vector< Triangle > osg::KdTree::TriangleList

Constructor & Destructor Documentation

osg::KdTree::KdTree ( )
osg::KdTree::KdTree ( const KdTree rhs,
const osg::CopyOp copyop = osg::CopyOp::SHALLOW_COPY 
)

Member Function Documentation

int osg::KdTree::addNode ( const KdNode node)
inline
unsigned int osg::KdTree::addTriangle ( const Triangle tri)
inline
virtual bool osg::KdTree::build ( BuildOptions &  buildOptions,
osg::Geometry geometry 
)
virtual

Build the kdtree from the specified source geometry object. retun true on success.

KdNode& osg::KdTree::getNode ( int  nodeNum)
inline
const KdNode& osg::KdTree::getNode ( int  nodeNum) const
inline
KdNodeList& osg::KdTree::getNodes ( )
inline
const KdNodeList& osg::KdTree::getNodes ( ) const
inline
Triangle& osg::KdTree::getTriangle ( unsigned int  i)
inline
const Triangle& osg::KdTree::getTriangle ( unsigned int  i) const
inline
TriangleList& osg::KdTree::getTriangles ( )
inline
const TriangleList& osg::KdTree::getTriangles ( ) const
inline
const osg::Vec3Array* osg::KdTree::getVertices ( ) const
inline
virtual bool osg::KdTree::intersect ( const osg::Vec3d start,
const osg::Vec3d end,
LineSegmentIntersections intersections 
) const
virtual

compute the intersection of a line segment and the kdtree, return true if an intersection has been found.

osg::KdTree::META_Shape ( osg  ,
KdTree   
)
inline
void osg::KdTree::setVertices ( osg::Vec3Array vertices)
inline

Member Data Documentation

KdNodeList osg::KdTree::_kdNodes
protected
TriangleList osg::KdTree::_triangles
protected
osg::ref_ptr<osg::Vec3Array> osg::KdTree::_vertices
protected

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