openscenegraph
|
Classes | |
struct | Edge |
Public Types | |
typedef std::vector< osg::Vec3 > | Vec3List |
typedef std::vector< GLuint > | UIntList |
![]() | |
enum | AttributeTypes { VERTICES = 0, WEIGHTS = 1, NORMALS = 2, COLORS = 3, SECONDARY_COLORS = 4, FOG_COORDS = 5, ATTRIBUTE_6 = 6, ATTRIBUTE_7 = 7, TEXTURE_COORDS = 8, TEXTURE_COORDS_0 = TEXTURE_COORDS, TEXTURE_COORDS_1 = TEXTURE_COORDS_0+1, TEXTURE_COORDS_2 = TEXTURE_COORDS_0+2, TEXTURE_COORDS_3 = TEXTURE_COORDS_0+3, TEXTURE_COORDS_4 = TEXTURE_COORDS_0+4, TEXTURE_COORDS_5 = TEXTURE_COORDS_0+5, TEXTURE_COORDS_6 = TEXTURE_COORDS_0+6, TEXTURE_COORDS_7 = TEXTURE_COORDS_0+7 } |
typedef std::vector< Node * > | ParentList |
typedef unsigned int | AttributeType |
![]() | |
enum | DataVariance { DYNAMIC, STATIC, UNSPECIFIED } |
Public Member Functions | |
OccluderGeometry () | |
OccluderGeometry (const OccluderGeometry &oc, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
virtual Object * | cloneType () const |
virtual Object * | clone (const osg::CopyOp ©op) const |
virtual bool | isSameKindAs (const osg::Object *obj) const |
virtual const char * | libraryName () const |
virtual const char * | className () const |
void | computeOccluderGeometry (osg::Node *subgraph, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
void | computeOccluderGeometry (osg::Drawable *drawable, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
void | computeShadowVolumeGeometry (const osg::Vec4 &lightpos, ShadowVolumeGeometry &svg) const |
void | setBoundingPolytope (const osg::Polytope &polytope) |
osg::Polytope & | getBoundingPolytope () |
const osg::Polytope & | getBoundingPolytope () const |
virtual void | drawImplementation (osg::RenderInfo &renderInfo) const |
virtual osg::BoundingBox | computeBound () const |
void | processGeometry (osg::Drawable *drawable, osg::Matrix *matrix=0, float sampleRatio=1.0f) |
![]() | |
Drawable () | |
Drawable (const Drawable &drawable, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual Geometry * | asGeometry () |
virtual const Geometry * | asGeometry () const |
virtual void | computeDataVariance () |
const ParentList & | getParents () const |
ParentList | getParents () |
Node * | getParent (unsigned int i) |
const Node * | getParent (unsigned int i) const |
unsigned int | getNumParents () const |
MatrixList | getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const |
void | setStateSet (StateSet *stateset) |
StateSet * | getStateSet () |
const StateSet * | getStateSet () const |
StateSet * | getOrCreateStateSet () |
void | setInitialBound (const osg::BoundingBox &bbox) |
const BoundingBox & | getInitialBound () const |
void | dirtyBound () |
const BoundingBox & | getBound () const |
void | setComputeBoundingBoxCallback (ComputeBoundingBoxCallback *callback) |
ComputeBoundingBoxCallback * | getComputeBoundingBoxCallback () |
const ComputeBoundingBoxCallback * | getComputeBoundingBoxCallback () const |
void | setShape (Shape *shape) |
Shape * | getShape () |
const Shape * | getShape () const |
void | setSupportsDisplayList (bool flag) |
bool | getSupportsDisplayList () const |
void | setUseDisplayList (bool flag) |
bool | getUseDisplayList () const |
GLuint & | getDisplayList (unsigned int contextID) const |
virtual void | setUseVertexBufferObjects (bool flag) |
bool | getUseVertexBufferObjects () const |
virtual void | dirtyDisplayList () |
virtual unsigned int | getGLObjectSizeHint () const |
void | draw (RenderInfo &renderInfo) const |
virtual void | compileGLObjects (RenderInfo &renderInfo) const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
virtual void | releaseGLObjects (State *state=0) const |
virtual void | setUpdateCallback (UpdateCallback *ac) |
UpdateCallback * | getUpdateCallback () |
const UpdateCallback * | getUpdateCallback () const |
bool | requiresUpdateTraversal () const |
virtual void | setEventCallback (EventCallback *ac) |
EventCallback * | getEventCallback () |
const EventCallback * | getEventCallback () const |
bool | requiresEventTraversal () const |
virtual void | setCullCallback (CullCallback *cc) |
CullCallback * | getCullCallback () |
const CullCallback * | getCullCallback () const |
virtual void | setDrawCallback (DrawCallback *dc) |
DrawCallback * | getDrawCallback () |
const DrawCallback * | getDrawCallback () const |
virtual bool | supports (const AttributeFunctor &) const |
virtual void | accept (AttributeFunctor &) |
virtual bool | supports (const ConstAttributeFunctor &) const |
virtual void | accept (ConstAttributeFunctor &) const |
virtual bool | supports (const PrimitiveFunctor &) const |
virtual void | accept (PrimitiveFunctor &) const |
virtual bool | supports (const PrimitiveIndexFunctor &) const |
virtual void | accept (PrimitiveIndexFunctor &) const |
![]() | |
Object () | |
Object (bool threadSafeRefUnref) | |
Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
virtual void | setName (const std::string &name) |
void | setName (const char *name) |
const std::string & | getName () const |
void | setDataVariance (DataVariance dv) |
DataVariance | getDataVariance () const |
void | setUserDataContainer (osg::UserDataContainer *udc) |
osg::UserDataContainer * | getUserDataContainer () |
const osg::UserDataContainer * | getUserDataContainer () const |
osg::UserDataContainer * | getOrCreateUserDataContainer () |
virtual void | setUserData (Referenced *obj) |
virtual Referenced * | getUserData () |
virtual const Referenced * | getUserData () 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) |
template<typename T > | |
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject bool | getUserValue (const std::string &name, T &value) const |
![]() | |
Referenced () | |
Referenced (bool threadSafeRefUnref) | |
Referenced (const Referenced &) | |
Referenced & | operator= (const Referenced &) |
bool | getThreadSafeRefUnref () const |
OpenThreads::Mutex * | getRefMutex () const |
int | ref () const |
int | unref () const |
int | unref_nodelete () const |
int | referenceCount () const |
ObserverSet * | getObserverSet () const |
ObserverSet * | getOrCreateObserverSet () const |
void | addObserver (Observer *observer) const |
void | removeObserver (Observer *observer) const |
Protected Types | |
typedef std::vector< Edge > | EdgeList |
![]() | |
typedef osg::buffered_value< GLuint > | GLObjectList |
Protected Member Functions | |
virtual | ~OccluderGeometry () |
bool | isLightPointSilhouetteEdge (const osg::Vec3 &lightpos, const Edge &edge) const |
bool | isLightDirectionSilhouetteEdge (const osg::Vec3 &lightdirection, const Edge &edge) const |
void | setUpInternalStructures () |
void | removeDuplicateVertices () |
void | removeNullTriangles () |
void | computeNormals () |
void | buildEdgeMaps () |
void | computeLightDirectionSilhouetteEdges (const osg::Vec3 &lightdirection, UIntList &silhouetteIndices) const |
void | computeLightPositionSilhouetteEdges (const osg::Vec3 &lightpos, UIntList &silhouetteIndices) const |
![]() | |
Drawable & | operator= (const Drawable &) |
virtual | ~Drawable () |
void | setBound (const BoundingBox &bb) const |
void | addParent (osg::Node *node) |
void | removeParent (osg::Node *node) |
void | setNumChildrenRequiringUpdateTraversal (unsigned int num) |
unsigned int | getNumChildrenRequiringUpdateTraversal () const |
void | setNumChildrenRequiringEventTraversal (unsigned int num) |
unsigned int | getNumChildrenRequiringEventTraversal () const |
![]() | |
virtual | ~Object () |
![]() | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
![]() | |
static GLuint | generateDisplayList (unsigned int contextID, unsigned int sizeHint=0) |
static void | setMinimumNumberOfDisplayListsToRetainInCache (unsigned int minimum) |
static unsigned int | getMinimumNumberOfDisplayListsToRetainInCache () |
static void | deleteDisplayList (unsigned int contextID, GLuint globj, unsigned int sizeHint=0) |
static void | flushAllDeletedDisplayLists (unsigned int contextID) |
static void | discardAllDeletedDisplayLists (unsigned int contextID) |
static void | flushDeletedDisplayLists (unsigned int contextID, double &availableTime) |
static Extensions * | getExtensions (unsigned int contextID, bool createIfNotInitalized) |
static void | setExtensions (unsigned int contextID, Extensions *extensions) |
![]() | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
static bool | getThreadSafeReferenceCounting () |
static void | setDeleteHandler (DeleteHandler *handler) |
static DeleteHandler * | getDeleteHandler () |
![]() | |
static unsigned int | s_numberDrawablesReusedLastInLastFrame |
static unsigned int | s_numberNewDrawablesInLastFrame |
static unsigned int | s_numberDeletedDrawablesInLastFrame |
OccluderGeometry provides a sepecialised geometry representation of objects in scene that occlude light and therefore cast shadows. OccluderGeometry supports the computation of silhouette edges and shadow volume geometries, as well as use as geometry that one can rendering into a shadow map or end caps for the ZP+ algorithm. OccluderGeometry may be of the same resolution as an underlying geometry that it represents, or can be of lower resolution and combine manager seperate geometries together into a single shadow casting object. OccluderGeometry may be attached as UserData to Nodes or to Drawables.
|
protected |
typedef std::vector<GLuint> osgShadow::OccluderGeometry::UIntList |
typedef std::vector<osg::Vec3> osgShadow::OccluderGeometry::Vec3List |
osgShadow::OccluderGeometry::OccluderGeometry | ( | ) |
osgShadow::OccluderGeometry::OccluderGeometry | ( | const OccluderGeometry & | oc, |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY |
||
) |
|
inlineprotectedvirtual |
|
protected |
|
inlinevirtual |
return the name of the object's class type. Must be defined by derived classes.
Reimplemented from osg::Drawable.
|
inlinevirtual |
Clone an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
|
inlinevirtual |
Clone the type of an object, with Object* return type. Must be defined by derived classes.
Implements osg::Object.
|
virtual |
Compute the bounding box around occluder geometry.
Reimplemented from osg::Drawable.
|
protected |
|
protected |
|
protected |
void osgShadow::OccluderGeometry::computeOccluderGeometry | ( | osg::Node * | subgraph, |
osg::Matrix * | matrix = 0 , |
||
float | sampleRatio = 1.0f |
||
) |
Compute an occluder geometry containing all the geometry in specified subgraph.
void osgShadow::OccluderGeometry::computeOccluderGeometry | ( | osg::Drawable * | drawable, |
osg::Matrix * | matrix = 0 , |
||
float | sampleRatio = 1.0f |
||
) |
Compute an occluder geometry containing the geometry in specified drawable.
void osgShadow::OccluderGeometry::computeShadowVolumeGeometry | ( | const osg::Vec4 & | lightpos, |
ShadowVolumeGeometry & | svg | ||
) | const |
Compute ShadowVolumeGeometry.
|
virtual |
Render the occluder geometry.
Implements osg::Drawable.
|
inline |
Get the bounding polytope of the OccluderGeometry.
|
inline |
Get the const bounding polytope of the OccluderGeometry.
|
inlineprotected |
|
inlineprotected |
|
inlinevirtual |
Reimplemented from osg::Drawable.
|
inlinevirtual |
return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name.
Reimplemented from osg::Drawable.
void osgShadow::OccluderGeometry::processGeometry | ( | osg::Drawable * | drawable, |
osg::Matrix * | matrix = 0 , |
||
float | sampleRatio = 1.0f |
||
) |
|
protected |
|
protected |
|
inline |
Set the bounding polytope of the OccluderGeometry.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |