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< MorphTarget > MorphTargetList
 
- 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::Object * cloneType () const
 
virtual osg::Object * clone (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 MorphTargetList & getMorphTargetList () const
 
MorphTargetList & getMorphTargetList ()
 
const MorphTarget & getMorphTarget (unsigned int i) const
 
MorphTarget & getMorphTarget (unsigned int i)
 
- Public Member Functions inherited from osg::Geometry
 Geometry ()
 
 Geometry (const Geometry &geometry, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 
virtual Geometry * asGeometry ()
 
virtual const Geometry * asGeometry () const
 
bool empty () const
 
void setVertexArray (Array *array)
 
Array * getVertexArray ()
 
const Array * getVertexArray () const
 
void setNormalArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getNormalArray ()
 
const Array * getNormalArray () const
 
void setColorArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getColorArray ()
 
const Array * getColorArray () const
 
void setSecondaryColorArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getSecondaryColorArray ()
 
const Array * getSecondaryColorArray () const
 
void setFogCoordArray (Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getFogCoordArray ()
 
const Array * getFogCoordArray () const
 
void setTexCoordArray (unsigned int unit, Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getTexCoordArray (unsigned int unit)
 
const Array * getTexCoordArray (unsigned int unit) const
 
unsigned int getNumTexCoordArrays () const
 
ArrayList & getTexCoordArrayList ()
 
const ArrayList & getTexCoordArrayList () const
 
void setVertexAttribArray (unsigned int index, Array *array, osg::Array::Binding binding=osg::Array::BIND_UNDEFINED)
 
Array * getVertexAttribArray (unsigned int index)
 
const Array * getVertexAttribArray (unsigned int index) const
 
unsigned int getNumVertexAttribArrays () const
 
ArrayList & getVertexAttribArrayList ()
 
const ArrayList & getVertexAttribArrayList () const
 
void setPrimitiveSetList (const PrimitiveSetList &primitives)
 
PrimitiveSetList & getPrimitiveSetList ()
 
const PrimitiveSetList & getPrimitiveSetList () const
 
unsigned int getNumPrimitiveSets () const
 
PrimitiveSet * getPrimitiveSet (unsigned int pos)
 
const PrimitiveSet * getPrimitiveSet (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::VertexBufferObject * getOrCreateVertexBufferObject ()
 
osg::ElementBufferObject * getOrCreateElementBufferObject ()
 
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 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
 
virtual BoundingBox computeBound () 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
 
bool getUseVertexBufferObjects () const
 
void draw (RenderInfo &renderInfo) const
 
virtual void setThreadSafeRefUnref (bool threadSafe)
 
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
 
- 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::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
 
- Public Member Functions inherited from osg::Referenced
 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 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 Extensions * getExtensions (unsigned int contextID, bool createIfNotInitalized)
 
static void setExtensions (unsigned int contextID, Extensions *extensions)
 
- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * getGlobalReferencedMutex ()
 
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
 
static bool getThreadSafeReferenceCounting ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandler * getDeleteHandler ()
 
- 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
Geometry & operator= (const Geometry &)
 
virtual ~Geometry ()
 
void addVertexBufferObjectIfRequired (osg::Array *array)
 
void addElementBufferObjectIfRequired (osg::PrimitiveSet *primitiveSet)
 
- Protected Member Functions inherited from osg::Drawable
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
 
- 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

◆ MorphTargetList

Member Enumeration Documentation

◆ Method

Enumerator
NORMALIZED 
RELATIVE 

Constructor & Destructor Documentation

◆ MorphGeometry() [1/3]

osgAnimation::MorphGeometry::MorphGeometry ( )

◆ MorphGeometry() [2/3]

osgAnimation::MorphGeometry::MorphGeometry ( const osg::Geometry &  b)

◆ MorphGeometry() [3/3]

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

Member Function Documentation

◆ addMorphTarget()

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.

◆ className()

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.

◆ clone()

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.

◆ cloneType()

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.

◆ dirty()

void osgAnimation::MorphGeometry::dirty ( )
inline

Set the MorphGeometry dirty.

◆ getMethod()

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

Get the morphing method.

◆ getMorphNormals()

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

Get the flag for morphing normals.

◆ getMorphTarget() [1/2]

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

Return the MorphTarget at position i.

◆ getMorphTarget() [2/2]

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

Return the MorphTarget at position i.

◆ getMorphTargetList() [1/2]

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

Get the list of MorphTargets.

◆ getMorphTargetList() [2/2]

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

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

◆ isSameKindAs()

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

Reimplemented from osg::Geometry.

◆ libraryName()

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.

◆ setMethod()

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

Set the morphing method.

◆ setMorphNormals()

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

Set flag for morphing normals.

◆ setWeight()

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

◆ transformSoftwareMethod()

virtual void osgAnimation::MorphGeometry::transformSoftwareMethod ( )
virtual

Member Data Documentation

◆ _dirty

bool osgAnimation::MorphGeometry::_dirty
protected

Do we need to recalculate the morphed geometry?

◆ _method

Method osgAnimation::MorphGeometry::_method
protected

◆ _morphNormals

bool osgAnimation::MorphGeometry::_morphNormals
protected

Do we also morph between normals?

◆ _morphTargets

MorphTargetList osgAnimation::MorphGeometry::_morphTargets
protected

◆ _normalSource

std::vector<osg::Vec3> osgAnimation::MorphGeometry::_normalSource
protected

◆ _positionSource

std::vector<osg::Vec3> osgAnimation::MorphGeometry::_positionSource
protected

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