148 void prepareTempBlendBuffers(
void);
151 void markBuffersUnusedForAnimation(
void);
155 void restoreBuffersForUnusedAnimation(
bool hardwareAnimation);
164 void bindMissingHardwarePoseBuffers(
const VertexData* srcData,
171 bool animateNormals);
187 void updateAnimation(
void);
204 bool cacheBoneMatrices(
void);
280 void detachAllObjectsImpl(
void);
283 void reevaluateVertexProcessing(
void);
291 bool calcVertexProcessing(
void);
294 void applyVertexAnimation(
bool hardwareAnimation,
bool stencilShadows);
298 bool tempVertexAnimBuffersBound(
void)
const;
300 bool tempSkelAnimBuffersBound(
bool requestNormals)
const;
334 bool createSeparateLightCap,
SubEntity* subent,
bool isLightCap =
false);
338 void _createSeparateLightCap();
340 void getWorldTransforms(
Matrix4* xform)
const;
344 void rebindPositionBuffer(
const VertexData* vertexData,
bool force);
346 bool isVisible(
void)
const;
357 const MeshPtr& getMesh(
void)
const;
361 SubEntity* getSubEntity(
unsigned int index)
const;
371 unsigned int getNumSubEntities(
void)
const;
407 void _notifyCurrentCamera(
Camera* cam);
410 void setRenderQueueGroup(
uint8 queueID);
413 void setRenderQueueGroupAndPriority(
uint8 queueID,
ushort priority);
427 const String& getMovableType(
void)
const;
437 bool hasAnimationState(
const String& name)
const;
451 void setDisplaySkeleton(
bool display);
455 bool getDisplaySkeleton(
void)
const;
463 Entity* getManualLodLevel(
size_t index)
const;
470 size_t getNumManualLodLevels(
void)
const;
505 void setMeshLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
536 void setMaterialLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
541 void setPolygonModeOverrideable(
bool PolygonModeOverrideable);
582 void detachAllObjectsFromBone(
void);
588 Real getBoundingRadius(
void)
const;
591 const AxisAlignedBox& getWorldBoundingBox(
bool derive =
false)
const;
593 const Sphere& getWorldBoundingSphere(
bool derive =
false)
const;
598 bool hasEdgeList(
void);
603 bool extrudeVertices,
Real extrusionDistance,
unsigned long flags = 0 );
628 bool isHardwareAnimationEnabled(
void);
631 void _notifyAttached(
Node* parent,
bool isTagPoint =
false);
667 void addSoftwareAnimationRequest(
bool normalsAlso);
676 void removeSoftwareAnimationRequest(
bool normalsAlso);
682 void shareSkeletonInstanceWith(
Entity* entity);
686 bool hasVertexAnimation(
void)
const;
691 void stopSharingSkeletonInstance();
713 void refreshAvailableAnimationState(
void);
722 void _updateAnimation(
void);
729 bool _isAnimated(
void)
const;
733 bool _isSkeletonAnimated(
void)
const;
744 VertexData* _getSkelAnimVertexData(
void)
const;
753 VertexData* _getSoftwareVertexAnimVertexData(
void)
const;
758 VertexData* _getHardwareVertexAnimVertexData(
void)
const;
768 uint32 getTypeFlags(
void)
const;
781 VertexDataBindChoice chooseVertexDataForBinding(
bool hasVertexAnim);
787 void _markBuffersUsedForAnimation(
void);
810 void _initialise(
bool forceReinitialise =
false);
812 void _deinitialise(
void);
817 void backgroundLoadingComplete(
Resource* res);
821 bool debugRenderables =
false);
824 Real _getMeshLodFactorTransformed()
const;
830 mSkipAnimStateUpdates = skip;
837 return mSkipAnimStateUpdates;
845 mAlwaysUpdateMainSkeleton = update;
853 return mAlwaysUpdateMainSkeleton;
870 const String& getType(
void)
const;
881 #endif // __Entity_H__