120 void organiseTangentsBuffer(
VertexData *vertexData,
122 unsigned short sourceTexCoordSet);
157 unsigned short numBlendWeightsPerVertex,
196 void prepareImpl(
void);
199 void unprepareImpl(
void);
203 void postLoadImpl(
void);
205 void unloadImpl(
void);
207 size_t calculateSize(
void)
const;
209 void mergeAdjacentTexcoords(
unsigned short finalTexCoordSet,
210 unsigned short texCoordSetToDestroy,
VertexData *vertexData );
243 void unnameSubMesh(
const String& name);
254 unsigned short getNumSubMeshes(
void)
const;
258 SubMesh* getSubMesh(
unsigned short index)
const;
270 void destroySubMesh(
unsigned short index);
278 void destroySubMesh(
const String& name);
335 Real getBoundingSphereRadius(
void)
const;
354 void _setBoundingSphereRadius(
Real radius);
367 void setSkeletonName(
const String& skelName);
370 bool hasSkeleton(
void)
const;
374 bool hasVertexAnimation(
void)
const;
383 const String& getSkeletonName(
void)
const;
414 void clearBoneAssignments(
void);
438 ushort getNumLodLevels(
void)
const;
467 void updateManualLodLevel(
ushort index,
const String& meshName);
486 void _setLodInfo(
unsigned short numLevels,
bool isManual);
488 void _setLodUsage(
unsigned short level,
MeshLodUsage& usage);
490 void _setSubMeshLodFaceList(
unsigned short subIdx,
unsigned short level,
IndexData* facedata);
493 void removeLodLevels(
void);
571 unsigned short _rationaliseBoneAssignments(
size_t vertexCount, VertexBoneAssignmentList& assignments);
580 void _compileBoneAssignments(
void);
587 void _updateCompiledBoneAssignments(
void);
604 void mergeAdjacentTexcoords(
unsigned short finalTexCoordSet,
unsigned short texCoordSetToDestroy );
606 void _configureMeshLodUsage(
const LodConfig& lodConfig);
641 unsigned short sourceTexCoordSet = 0,
unsigned short index = 0,
642 bool splitMirrored =
false,
bool splitRotated =
false,
bool storeParityInW =
false);
666 unsigned short& outSourceCoordSet,
unsigned short& outIndex);
671 void buildEdgeList(
void);
673 void freeEdgeList(
void);
693 void prepareForShadowVolume(
void);
702 EdgeData* getEdgeList(
unsigned short lodIndex = 0);
711 const EdgeData* getEdgeList(
unsigned short lodIndex = 0)
const;
734 static void prepareMatricesForVertexBlend(
const Matrix4** blendMatrices,
735 const Matrix4* boneMatrices,
const IndexMap& indexMap);
760 static void softwareVertexBlend(
const VertexData* sourceVertexData,
762 const Matrix4*
const* blendMatrices,
size_t numMatrices,
781 static void softwareVertexMorph(
Real t,
805 static void softwareVertexPoseBlend(
Real weight,
858 virtual bool hasAnimation(
const String& name)
const;
861 virtual void removeAnimation(
const String& name);
864 virtual unsigned short getNumAnimations(
void)
const;
868 virtual Animation* getAnimation(
unsigned short index)
const;
871 virtual void removeAllAnimations(
void);
877 VertexData* getVertexDataByTrackHandle(
unsigned short handle);
889 void updateMaterialForAllSubMeshes(
void);
895 void _determineAnimationTypes(
void)
const;
919 void removePose(
ushort index);
924 void removePose(
const String& name);
926 void removeAllPoses(
void);
936 const PoseList& getPoseList(
void)
const;