25 #include <boost/enable_shared_from_this.hpp>
50 class SkeletonInstance;
64 class Visual :
public boost::enable_shared_from_this<Visual>
72 bool _useRTShader =
true);
80 bool _useRTShader =
true);
106 public:
virtual void Load();
113 public:
void SetName(
const std::string &_name);
117 public: std::string
GetName()
const;
163 public: Ogre::MovableObject *
AttachMesh(
const std::string &_meshName,
164 const std::string &_subMesh=
"",
165 bool _centerSubmesh =
false,
166 const std::string &_objName=
"");
181 public:
void SetMaterial(
const std::string &_materialName,
182 bool _unique =
true);
228 public:
void SetVisible(
bool _visible,
bool _cascade =
true);
329 unsigned int _index);
339 public:
void InsertMesh(
const std::string &_meshName,
340 const std::string &_subMesh =
"",
341 bool _centerSubmesh =
false);
348 const std::string &_subMesh =
"",
349 bool _centerSubmesh =
false);
389 boost::function<
void()> _onComplete =
NULL);
431 public:
void ShowCOM(
bool _show);
441 public:
void LoadPlugin(
const std::string &_filename,
442 const std::string &_name,
452 private:
void LoadPlugins();
456 private: std::vector<VisualPluginPtr> plugins;
461 private:
void GetBoundsHelper(Ogre::SceneNode *_node,
488 private:
bool GetCenterSubMesh()
const;
492 private:
void DestroyAllAttachedMovableObjects(
493 Ogre::SceneNode *_sceneNode);
499 private: std::string myMaterialName;
502 private: std::string origMaterialName;
505 private:
float transparency;
509 private:
bool isStatic;
512 private: Ogre::StaticGeometry *staticGeom;
515 private:
bool visible;
518 private: Ogre::RibbonTrail *ribbonTrail;
521 private: Ogre::SkeletonInstance *skeleton;
527 private: std::list<DynamicLines*> lines;
530 private: std::list< std::pair<DynamicLines*, unsigned int> > lineVertices;
533 private: std::string name;
536 private: std::vector<VisualPtr> children;
539 private: Ogre::AnimationState *animState;
545 private: boost::function<void()> onAnimationComplete;
548 private:
bool useRTShader;
551 private:
bool initialized;