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