Irrlicht 3D Engine
irr::scene::ISkinnedMesh Class Referenceabstract

Interface for using some special functions of Skinned meshes. More...

#include <ISkinnedMesh.h>

+ Inheritance diagram for irr::scene::ISkinnedMesh:

Classes

struct  SJoint
 Joints. More...
 
struct  SPositionKey
 Animation keyframe which describes a new position. More...
 
struct  SRotationKey
 Animation keyframe which describes a new rotation. More...
 
struct  SScaleKey
 Animation keyframe which describes a new scale. More...
 
struct  SWeight
 A vertex weight. More...
 

Public Member Functions

virtual SJointaddJoint (SJoint *parent=0)=0
 Adds a new joint to the mesh, access it as last one. More...
 
virtual SSkinMeshBufferaddMeshBuffer ()=0
 Adds a new meshbuffer to the mesh, access it as last one. More...
 
virtual SPositionKeyaddPositionKey (SJoint *joint)=0
 Adds a new position key to the mesh, access it as last one. More...
 
virtual SRotationKeyaddRotationKey (SJoint *joint)=0
 Adds a new rotation key to the mesh, access it as last one. More...
 
virtual SScaleKeyaddScaleKey (SJoint *joint)=0
 Adds a new scale key to the mesh, access it as last one. More...
 
virtual SWeightaddWeight (SJoint *joint)=0
 Adds a new weight to the mesh, access it as last one. More...
 
virtual void animateMesh (f32 frame, f32 blend)=0
 Animates this mesh's joints based on frame input. More...
 
virtual void convertMeshToTangents ()=0
 converts the vertex type of all meshbuffers to tangents. More...
 
virtual void finalize ()=0
 loaders should call this after populating the mesh More...
 
virtual core::array< SJoint * > & getAllJoints ()=0
 exposed for loaders: joints list More...
 
virtual const core::array< SJoint * > & getAllJoints () const =0
 exposed for loaders: joints list More...
 
virtual u32 getJointCount () const =0
 Gets joint count. More...
 
virtual const c8getJointName (u32 number) const =0
 Gets the name of a joint. More...
 
virtual s32 getJointNumber (const c8 *name) const =0
 Gets a joint number from its name. More...
 
virtual core::array< SSkinMeshBuffer * > & getMeshBuffers ()=0
 exposed for loaders: to add mesh buffers More...
 
virtual bool isStatic ()=0
 Check if the mesh is non-animated. More...
 
virtual bool setHardwareSkinning (bool on)=0
 Allows to enable hardware skinning. More...
 
virtual void setInterpolationMode (E_INTERPOLATION_MODE mode)=0
 Sets Interpolation Mode. More...
 
virtual void skinMesh ()=0
 Preforms a software skin on this mesh based of joint positions. More...
 
virtual void updateNormalsWhenAnimating (bool on)=0
 Update Normals when Animating. More...
 
virtual bool useAnimationFrom (const ISkinnedMesh *mesh)=0
 Use animation from another mesh. More...
 
- Public Member Functions inherited from irr::scene::IAnimatedMesh
virtual f32 getAnimationSpeed () const =0
 Gets the animation speed of the animated mesh. More...
 
virtual u32 getFrameCount () const =0
 Gets the frame count of the animated mesh. More...
 
virtual IMeshgetMesh (s32 frame, s32 detailLevel=255, s32 startFrameLoop=-1, s32 endFrameLoop=-1)=0
 Returns the IMesh interface for a frame. More...
 
virtual E_ANIMATED_MESH_TYPE getMeshType () const
 Returns the type of the animated mesh. More...
 
virtual void setAnimationSpeed (f32 fps)=0
 Sets the animation speed of the animated mesh. More...
 
- Public Member Functions inherited from irr::scene::IMesh
virtual const core::aabbox3d< f32 > & getBoundingBox () const =0
 Get an axis aligned bounding box of the mesh. More...
 
virtual IMeshBuffergetMeshBuffer (u32 nr) const =0
 Get pointer to a mesh buffer. More...
 
virtual IMeshBuffergetMeshBuffer (const video::SMaterial &material) const =0
 Get pointer to a mesh buffer which fits a material. More...
 
virtual u32 getMeshBufferCount () const =0
 Get the amount of mesh buffers. More...
 
virtual void setBoundingBox (const core::aabbox3df &box)=0
 Set user-defined axis aligned bounding box. More...
 
virtual void setDirty (E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
 Flag the meshbuffer as changed, reloads hardware buffers. More...
 
virtual void setHardwareMappingHint (E_HARDWARE_MAPPING newMappingHint, E_BUFFER_TYPE buffer=EBT_VERTEX_AND_INDEX)=0
 Set the hardware mapping hint. More...
 
virtual void setMaterialFlag (video::E_MATERIAL_FLAG flag, bool newvalue)=0
 Sets a flag of all contained materials to a new value. More...
 
- Public Member Functions inherited from irr::IReferenceCounted
 IReferenceCounted ()
 Constructor. More...
 
virtual ~IReferenceCounted ()
 Destructor. More...
 
bool drop () const
 Drops the object. Decrements the reference counter by one. More...
 
const c8getDebugName () const
 Returns the debug name of the object. More...
 
s32 getReferenceCount () const
 Get the reference count. More...
 
void grab () const
 Grabs the object. Increments the reference counter by one. More...
 

Additional Inherited Members

- Protected Member Functions inherited from irr::IReferenceCounted
void setDebugName (const c8 *newName)
 Sets the debug name of the object. More...
 

Detailed Description

Interface for using some special functions of Skinned meshes.

Definition at line 32 of file ISkinnedMesh.h.

Member Function Documentation

◆ addJoint()

virtual SJoint* irr::scene::ISkinnedMesh::addJoint ( SJoint parent = 0)
pure virtual

Adds a new joint to the mesh, access it as last one.

◆ addMeshBuffer()

virtual SSkinMeshBuffer* irr::scene::ISkinnedMesh::addMeshBuffer ( )
pure virtual

Adds a new meshbuffer to the mesh, access it as last one.

◆ addPositionKey()

virtual SPositionKey* irr::scene::ISkinnedMesh::addPositionKey ( SJoint joint)
pure virtual

Adds a new position key to the mesh, access it as last one.

◆ addRotationKey()

virtual SRotationKey* irr::scene::ISkinnedMesh::addRotationKey ( SJoint joint)
pure virtual

Adds a new rotation key to the mesh, access it as last one.

◆ addScaleKey()

virtual SScaleKey* irr::scene::ISkinnedMesh::addScaleKey ( SJoint joint)
pure virtual

Adds a new scale key to the mesh, access it as last one.

◆ addWeight()

virtual SWeight* irr::scene::ISkinnedMesh::addWeight ( SJoint joint)
pure virtual

Adds a new weight to the mesh, access it as last one.

◆ animateMesh()

virtual void irr::scene::ISkinnedMesh::animateMesh ( f32  frame,
f32  blend 
)
pure virtual

Animates this mesh's joints based on frame input.

◆ convertMeshToTangents()

virtual void irr::scene::ISkinnedMesh::convertMeshToTangents ( )
pure virtual

converts the vertex type of all meshbuffers to tangents.

E.g. used for bump mapping.

◆ finalize()

virtual void irr::scene::ISkinnedMesh::finalize ( )
pure virtual

loaders should call this after populating the mesh

◆ getAllJoints() [1/2]

virtual core::array<SJoint*>& irr::scene::ISkinnedMesh::getAllJoints ( )
pure virtual

exposed for loaders: joints list

◆ getAllJoints() [2/2]

virtual const core::array<SJoint*>& irr::scene::ISkinnedMesh::getAllJoints ( ) const
pure virtual

exposed for loaders: joints list

◆ getJointCount()

virtual u32 irr::scene::ISkinnedMesh::getJointCount ( ) const
pure virtual

Gets joint count.

Returns
Amount of joints in the skeletal animated mesh.

◆ getJointName()

virtual const c8* irr::scene::ISkinnedMesh::getJointName ( u32  number) const
pure virtual

Gets the name of a joint.

Parameters
numberZero based index of joint. The last joint has the number getJointCount()-1;
Returns
Name of joint and null if an error happened.

◆ getJointNumber()

virtual s32 irr::scene::ISkinnedMesh::getJointNumber ( const c8 name) const
pure virtual

Gets a joint number from its name.

Parameters
nameName of the joint.
Returns
Number of the joint or -1 if not found.

◆ getMeshBuffers()

virtual core::array<SSkinMeshBuffer*>& irr::scene::ISkinnedMesh::getMeshBuffers ( )
pure virtual

exposed for loaders: to add mesh buffers

◆ isStatic()

virtual bool irr::scene::ISkinnedMesh::isStatic ( )
pure virtual

Check if the mesh is non-animated.

◆ setHardwareSkinning()

virtual bool irr::scene::ISkinnedMesh::setHardwareSkinning ( bool  on)
pure virtual

Allows to enable hardware skinning.

◆ setInterpolationMode()

virtual void irr::scene::ISkinnedMesh::setInterpolationMode ( E_INTERPOLATION_MODE  mode)
pure virtual

Sets Interpolation Mode.

◆ skinMesh()

virtual void irr::scene::ISkinnedMesh::skinMesh ( )
pure virtual

Preforms a software skin on this mesh based of joint positions.

◆ updateNormalsWhenAnimating()

virtual void irr::scene::ISkinnedMesh::updateNormalsWhenAnimating ( bool  on)
pure virtual

Update Normals when Animating.

Parameters
onIf false don't animate, which is faster. Else update normals, which allows for proper lighting of animated meshes.

◆ useAnimationFrom()

virtual bool irr::scene::ISkinnedMesh::useAnimationFrom ( const ISkinnedMesh mesh)
pure virtual

Use animation from another mesh.

The animation is linked (not copied) based on joint names so make sure they are unique.

Returns
True if all joints in this mesh were matched up (empty names will not be matched, and it's case sensitive). Unmatched joints will not be animated.

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