 |
Irrlicht 3D Engine
|
|
Go to the documentation of this file.
5 #ifndef __I_SKINNED_MESH_H_INCLUDED__
6 #define __I_SKINNED_MESH_H_INCLUDED__
127 SJoint() : UseAnimationFrom(0), GlobalSkinningSpace(false),
128 positionHint(-1),scaleHint(-1),rotationHint(-1)
171 bool GlobalSkinningSpace;
core::quaternion Animatedrotation
virtual u32 getJointCount() const =0
Gets joint count.
virtual SSkinMeshBuffer * addMeshBuffer()=0
Adds a new meshbuffer to the mesh, access it as last one.
virtual core::array< SSkinMeshBuffer * > & getMeshBuffers()=0
exposed for loaders: to add mesh buffers
core::matrix4 LocalAnimatedMatrix
virtual void setInterpolationMode(E_INTERPOLATION_MODE mode)=0
Sets Interpolation Mode.
core::stringc Name
The name of this joint.
char c8
8 bit character variable.
virtual void animateMesh(f32 frame, f32 blend)=0
Animates this mesh's joints based on frame input.
core::array< SJoint * > Children
List of child joints.
friend class CSkinnedMesh
Internal members used by CSkinnedMesh.
core::matrix4 LocalMatrix
Local matrix of this joint.
virtual bool useAnimationFrom(const ISkinnedMesh *mesh)=0
Use animation from another mesh.
virtual void convertMeshToTangents()=0
converts the vertex type of all meshbuffers to tangents.
Animation keyframe which describes a new scale.
@ EIM_COUNT
count of all available interpolation modes
Interface for using some special functions of Skinned meshes.
virtual bool isStatic()=0
Check if the mesh is non-animated.
Quaternion class for representing rotations.
core::vector3df Animatedposition
Interface for an animated mesh.
virtual void skinMesh()=0
Preforms a software skin on this mesh based of joint positions.
signed int s32
32 bit signed variable.
4x4 matrix. Mostly used as transformation matrix for 3d calculations.
virtual core::array< SJoint * > & getAllJoints()=0
exposed for loaders: joints list
friend class CSkinnedMesh
Internal members used by CSkinnedMesh.
core::array< SPositionKey > PositionKeys
Animation keys causing translation change.
Animation keyframe which describes a new rotation.
float f32
32 bit floating point variable.
core::vector3df Animatedscale
f32 strength
Weight Strength/Percentage (0-1)
A mesh buffer able to choose between S3DVertex2TCoords, S3DVertex and S3DVertexTangents at runtime.
core::array< SRotationKey > RotationKeys
Animation keys causing rotation change.
core::array< u32 > AttachedMeshes
List of attached meshes.
u16 buffer_id
Index of the mesh buffer.
virtual s32 getJointNumber(const c8 *name) const =0
Gets a joint number from its name.
virtual void finalize()=0
loaders should call this after populating the mesh
Everything in the Irrlicht Engine can be found in this namespace.
unsigned short u16
16 bit unsigned variable.
unsigned int u32
32 bit unsigned variable.
core::matrix4 GlobalMatrix
Unnecessary for loaders, will be overwritten on finalize.
virtual SRotationKey * addRotationKey(SJoint *joint)=0
Adds a new rotation key to the mesh, access it as last one.
core::quaternion rotation
core::array< SScaleKey > ScaleKeys
Animation keys causing scale change.
Self reallocating template array (like stl vector) with additional features.
virtual const c8 * getJointName(u32 number) const =0
Gets the name of a joint.
virtual SPositionKey * addPositionKey(SJoint *joint)=0
Adds a new position key to the mesh, access it as last one.
u32 vertex_id
Index of the vertex.
core::array< SWeight > Weights
Skin weights.
virtual void updateNormalsWhenAnimating(bool on)=0
Update Normals when Animating.
virtual SScaleKey * addScaleKey(SJoint *joint)=0
Adds a new scale key to the mesh, access it as last one.
virtual bool setHardwareSkinning(bool on)=0
Allows to enable hardware skinning.
core::matrix4 GlobalInversedMatrix
core::matrix4 GlobalAnimatedMatrix
Animation keyframe which describes a new position.
virtual SJoint * addJoint(SJoint *parent=0)=0
Adds a new joint to the mesh, access it as last one.
virtual SWeight * addWeight(SJoint *joint)=0
Adds a new weight to the mesh, access it as last one.