openscenegraph
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
osgAnimation::MorphGeometry Class Reference
Inheritance diagram for osgAnimation::MorphGeometry:
osg::Geometry osg::Drawable osg::Object osg::Referenced

Classes

class  MorphTarget
 
struct  UpdateVertex
 

Public Types

enum  Method { NORMALIZED, RELATIVE }
 
typedef std::vector< MorphTargetMorphTargetList
 
- Public Types inherited from osg::Geometry
enum  AttributeBinding { BIND_OFF =0, BIND_OVERALL =1, BIND_PER_PRIMITIVE_SET =2, BIND_PER_VERTEX =4 }
 
typedef std::vector< osg::ref_ptr< osg::Array > > ArrayList
 
typedef std::vector< ref_ptr< PrimitiveSet > > PrimitiveSetList
 
typedef std::vector< osg::DrawElements * > DrawElementsList
 
- Public Types inherited from osg::Drawable
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
 
- Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC, STATIC, UNSPECIFIED }
 

Public Member Functions

 MorphGeometry ()
 
 MorphGeometry (const osg::Geometry &b)
 
 MorphGeometry (const MorphGeometry &b, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
 
virtual osg::ObjectcloneType () const
 
virtual osg::Objectclone (const osg::CopyOp &copyop) const
 
virtual bool isSameKindAs (const osg::Object *obj) const
 
virtual const char * libraryName () const
 
virtual const char * className () const
 
virtual void transformSoftwareMethod ()
 
void setMethod (Method method)
 
Method getMethod () const
 
void setMorphNormals (bool morphNormals)
 
bool getMorphNormals () const
 
virtual void addMorphTarget (osg::Geometry *morphTarget, float weight=1.0)
 
void setWeight (unsigned int index, float morphWeight)
 
void dirty ()
 
const MorphTargetListgetMorphTargetList () const
 
MorphTargetListgetMorphTargetList ()
 
const MorphTargetgetMorphTarget (unsigned int i) const
 
MorphTargetgetMorphTarget (unsigned int i)
 
- Public Member Functions inherited from osg::Geometry
 Geometry ()
 
 Geometry (const Geometry &geometry, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
virtual GeometryasGeometry ()
 
virtual const GeometryasGeometry () const
 
bool empty () const
 
void setVertexArray (Array *array)
 
ArraygetVertexArray ()
 
const ArraygetVertexArray () const
 
void setNormalArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetNormalArray ()
 
const ArraygetNormalArray () const
 
void setColorArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetColorArray ()
 
const ArraygetColorArray () const
 
void setSecondaryColorArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetSecondaryColorArray ()
 
const ArraygetSecondaryColorArray () const
 
void setFogCoordArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetFogCoordArray ()
 
const ArraygetFogCoordArray () const
 
void setTexCoordArray (unsigned int unit, Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetTexCoordArray (unsigned int unit)
 
const ArraygetTexCoordArray (unsigned int unit) const
 
unsigned int getNumTexCoordArrays () const
 
ArrayListgetTexCoordArrayList ()
 
const ArrayListgetTexCoordArrayList () const
 
void setVertexAttribArray (unsigned int index, Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
ArraygetVertexAttribArray (unsigned int index)
 
const ArraygetVertexAttribArray (unsigned int index) const
 
unsigned int getNumVertexAttribArrays () const
 
ArrayListgetVertexAttribArrayList ()
 
const ArrayListgetVertexAttribArrayList () const
 
void setPrimitiveSetList (const PrimitiveSetList &primitives)
 
PrimitiveSetListgetPrimitiveSetList ()
 
const PrimitiveSetListgetPrimitiveSetList () const
 
unsigned int getNumPrimitiveSets () const
 
PrimitiveSetgetPrimitiveSet (unsigned int pos)
 
const PrimitiveSetgetPrimitiveSet (unsigned int pos) const
 
bool addPrimitiveSet (PrimitiveSet *primitiveset)
 
bool setPrimitiveSet (unsigned int i, PrimitiveSet *primitiveset)
 
bool insertPrimitiveSet (unsigned int i, PrimitiveSet *primitiveset)
 
bool removePrimitiveSet (unsigned int i, unsigned int numElementsToRemove=1)
 
unsigned int getPrimitiveSetIndex (const PrimitiveSet *primitiveset) const
 
bool containsSharedArrays () const
 
void duplicateSharedArrays ()
 
virtual void setUseVertexBufferObjects (bool flag)
 
virtual void dirtyDisplayList ()
 
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 
virtual void releaseGLObjects (State *state=0) const
 
bool getArrayList (ArrayList &arrayList) const
 
bool getDrawElementsList (DrawElementsList &drawElementsList) const
 
osg::VertexBufferObjectgetOrCreateVertexBufferObject ()
 
osg::ElementBufferObjectgetOrCreateElementBufferObject ()
 
virtual unsigned int getGLObjectSizeHint () const
 
virtual void compileGLObjects (RenderInfo &renderInfo) const
 
virtual void drawImplementation (RenderInfo &renderInfo) const
 
virtual bool supports (const Drawable::AttributeFunctor &) const
 
virtual void accept (Drawable::AttributeFunctor &af)
 
virtual bool supports (const Drawable::ConstAttributeFunctor &) const
 
virtual void accept (Drawable::ConstAttributeFunctor &af) const
 
virtual bool supports (const PrimitiveFunctor &) const
 
virtual void accept (PrimitiveFunctor &pf) const
 
virtual bool supports (const PrimitiveIndexFunctor &) const
 
virtual void accept (PrimitiveIndexFunctor &pf) const
 
bool containsDeprecatedData () const
 
bool checkForDeprecatedData ()
 
void fixDeprecatedData ()
 
void setNormalBinding (AttributeBinding ab)
 
void setColorBinding (AttributeBinding ab)
 
void setSecondaryColorBinding (AttributeBinding ab)
 
void setFogCoordBinding (AttributeBinding ab)
 
void setVertexAttribBinding (unsigned int index, AttributeBinding ab)
 
AttributeBinding getNormalBinding () const
 
AttributeBinding getColorBinding () const
 
AttributeBinding getSecondaryColorBinding () const
 
AttributeBinding getFogCoordBinding () const
 
AttributeBinding getVertexAttribBinding (unsigned int index) const
 
void setVertexAttribNormalize (unsigned int index, GLboolean norm)
 
GLboolean getVertexAttribNormalize (unsigned int index) const
 
- Public Member Functions inherited from osg::Drawable
 Drawable ()
 
 Drawable (const Drawable &drawable, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
virtual void computeDataVariance ()
 
const ParentListgetParents () const
 
ParentList getParents ()
 
NodegetParent (unsigned int i)
 
const NodegetParent (unsigned int i) const
 
unsigned int getNumParents () const
 
MatrixList getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const
 
void setStateSet (StateSet *stateset)
 
StateSetgetStateSet ()
 
const StateSetgetStateSet () const
 
StateSetgetOrCreateStateSet ()
 
void setInitialBound (const osg::BoundingBox &bbox)
 
const BoundingBoxgetInitialBound () const
 
void dirtyBound ()
 
const BoundingBoxgetBound () const
 
virtual BoundingBox computeBound () const
 
void setComputeBoundingBoxCallback (ComputeBoundingBoxCallback *callback)
 
ComputeBoundingBoxCallbackgetComputeBoundingBoxCallback ()
 
const ComputeBoundingBoxCallbackgetComputeBoundingBoxCallback () const
 
void setShape (Shape *shape)
 
ShapegetShape ()
 
const ShapegetShape () const
 
void setSupportsDisplayList (bool flag)
 
bool getSupportsDisplayList () const
 
void setUseDisplayList (bool flag)
 
bool getUseDisplayList () const
 
GLuint & getDisplayList (unsigned int contextID) const
 
bool getUseVertexBufferObjects () const
 
void draw (RenderInfo &renderInfo) const
 
virtual void setThreadSafeRefUnref (bool threadSafe)
 
virtual void setUpdateCallback (UpdateCallback *ac)
 
UpdateCallbackgetUpdateCallback ()
 
const UpdateCallbackgetUpdateCallback () const
 
bool requiresUpdateTraversal () const
 
virtual void setEventCallback (EventCallback *ac)
 
EventCallbackgetEventCallback ()
 
const EventCallbackgetEventCallback () const
 
bool requiresEventTraversal () const
 
virtual void setCullCallback (CullCallback *cc)
 
CullCallbackgetCullCallback ()
 
const CullCallbackgetCullCallback () const
 
virtual void setDrawCallback (DrawCallback *dc)
 
DrawCallbackgetDrawCallback ()
 
const DrawCallbackgetDrawCallback () const
 
- Public Member Functions inherited from osg::Object
 Object ()
 
 Object (bool threadSafeRefUnref)
 
 Object (const Object &, const CopyOp &copyop=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::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)
 
template<typename T >
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject bool getUserValue (const std::string &name, T &value) 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

bool _dirty
 Do we need to recalculate the morphed geometry? More...
 
Method _method
 
MorphTargetList _morphTargets
 
std::vector< osg::Vec3_positionSource
 
std::vector< osg::Vec3_normalSource
 
bool _morphNormals
 Do we also morph between normals? More...
 
- Protected Attributes inherited from osg::Geometry
PrimitiveSetList _primitives
 
osg::ref_ptr< Array_vertexArray
 
osg::ref_ptr< Array_normalArray
 
osg::ref_ptr< Array_colorArray
 
osg::ref_ptr< Array_secondaryColorArray
 
osg::ref_ptr< Array_fogCoordArray
 
ArrayList _texCoordList
 
ArrayList _vertexAttribList
 
bool _containsDeprecatedData
 
- Protected Attributes inherited from osg::Drawable
ParentList _parents
 
ref_ptr< StateSet_stateset
 
BoundingBox _initialBound
 
ref_ptr< ComputeBoundingBoxCallback_computeBoundCallback
 
BoundingBox _boundingBox
 
bool _boundingBoxComputed
 
ref_ptr< Shape_shape
 
bool _supportsDisplayList
 
bool _useDisplayList
 
bool _supportsVertexBufferObjects
 
bool _useVertexBufferObjects
 
GLObjectList _globjList
 
ref_ptr< UpdateCallback_updateCallback
 
unsigned int _numChildrenRequiringUpdateTraversal
 
ref_ptr< EventCallback_eventCallback
 
unsigned int _numChildrenRequiringEventTraversal
 
ref_ptr< CullCallback_cullCallback
 
ref_ptr< DrawCallback_drawCallback
 
- Protected Attributes inherited from osg::Object
std::string _name
 
DataVariance _dataVariance
 
osg::UserDataContainer_userDataContainer
 
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
 
OpenThreads::Atomic _refCount
 

Additional Inherited Members

- Static Public Member Functions inherited from osg::Drawable
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 ExtensionsgetExtensions (unsigned int contextID, bool createIfNotInitalized)
 
static void setExtensions (unsigned int contextID, Extensions *extensions)
 
- 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 ()
 
- Static Public Attributes inherited from osg::Drawable
static unsigned int s_numberDrawablesReusedLastInLastFrame
 
static unsigned int s_numberNewDrawablesInLastFrame
 
static unsigned int s_numberDeletedDrawablesInLastFrame
 
- Protected Types inherited from osg::Drawable
typedef osg::buffered_value< GLuint > GLObjectList
 
- Protected Member Functions inherited from osg::Geometry
Geometryoperator= (const Geometry &)
 
virtual ~Geometry ()
 
void addVertexBufferObjectIfRequired (osg::Array *array)
 
void addElementBufferObjectIfRequired (osg::PrimitiveSet *primitiveSet)
 
- Protected Member Functions inherited from osg::Drawable
Drawableoperator= (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
 
- Protected Member Functions inherited from osg::Object
virtual ~Object ()
 
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
NORMALIZED 
RELATIVE 

Constructor & Destructor Documentation

osgAnimation::MorphGeometry::MorphGeometry ( )
osgAnimation::MorphGeometry::MorphGeometry ( const osg::Geometry b)
osgAnimation::MorphGeometry::MorphGeometry ( const MorphGeometry b,
const osg::CopyOp copyop = osg::CopyOp::SHALLOW_COPY 
)

Member Function Documentation

virtual void osgAnimation::MorphGeometry::addMorphTarget ( osg::Geometry morphTarget,
float  weight = 1.0 
)
inlinevirtual

Add a MorphTarget to the MorphGeometry. If MorphTarget is not NULL and is not contained in the MorphGeometry then increment its reference count, add it to the MorphTargets list and dirty the bounding sphere to force it to be recomputed on the next call to getBound().

Parameters
morphTargetThe MorphTarget to be added to the MorphGeometry.
weightThe weight to be added to the MorphGeometry.
Returns
true for success; false otherwise.
virtual const char* osgAnimation::MorphGeometry::className ( ) const
inlinevirtual

return the name of the object's class type. Must be defined by derived classes.

Reimplemented from osg::Geometry.

virtual osg::Object* osgAnimation::MorphGeometry::clone ( const osg::CopyOp ) const
inlinevirtual

Clone an object, with Object* return type. Must be defined by derived classes.

Reimplemented from osg::Geometry.

virtual osg::Object* osgAnimation::MorphGeometry::cloneType ( ) const
inlinevirtual

Clone the type of an object, with Object* return type. Must be defined by derived classes.

Reimplemented from osg::Geometry.

void osgAnimation::MorphGeometry::dirty ( )
inline

Set the MorphGeometry dirty.

Method osgAnimation::MorphGeometry::getMethod ( ) const
inline

Get the morphing method.

bool osgAnimation::MorphGeometry::getMorphNormals ( ) const
inline

Get the flag for morphing normals.

const MorphTarget& osgAnimation::MorphGeometry::getMorphTarget ( unsigned int  i) const
inline

Return the MorphTarget at position i.

MorphTarget& osgAnimation::MorphGeometry::getMorphTarget ( unsigned int  i)
inline

Return the MorphTarget at position i.

const MorphTargetList& osgAnimation::MorphGeometry::getMorphTargetList ( ) const
inline

Get the list of MorphTargets.

MorphTargetList& osgAnimation::MorphGeometry::getMorphTargetList ( )
inline

Get the list of MorphTargets. Warning if you modify this array you will have to call dirty()

virtual bool osgAnimation::MorphGeometry::isSameKindAs ( const osg::Object obj) const
inlinevirtual

Reimplemented from osg::Geometry.

virtual const char* osgAnimation::MorphGeometry::libraryName ( ) const
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::Geometry.

void osgAnimation::MorphGeometry::setMethod ( Method  method)
inline

Set the morphing method.

void osgAnimation::MorphGeometry::setMorphNormals ( bool  morphNormals)
inline

Set flag for morphing normals.

void osgAnimation::MorphGeometry::setWeight ( unsigned int  index,
float  morphWeight 
)
inline
virtual void osgAnimation::MorphGeometry::transformSoftwareMethod ( )
virtual

Member Data Documentation

bool osgAnimation::MorphGeometry::_dirty
protected

Do we need to recalculate the morphed geometry?

Method osgAnimation::MorphGeometry::_method
protected
bool osgAnimation::MorphGeometry::_morphNormals
protected

Do we also morph between normals?

MorphTargetList osgAnimation::MorphGeometry::_morphTargets
protected
std::vector<osg::Vec3> osgAnimation::MorphGeometry::_normalSource
protected
std::vector<osg::Vec3> osgAnimation::MorphGeometry::_positionSource
protected

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