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;
160 public: Ogre::MovableObject *
AttachMesh(
const std::string &_meshName,
161 const std::string &_objName=
"");
176 public:
void SetMaterial(
const std::string &_materialName,
177 bool _unique =
true);
219 public:
void SetVisible(
bool _visible,
bool _cascade =
true);
320 unsigned int _index);
328 public:
void InsertMesh(
const std::string &_meshName);
372 boost::function<
void()> _onComplete =
NULL);
414 public:
void ShowCOM(
bool _show);
424 public:
void LoadPlugin(
const std::string &_filename,
425 const std::string &_name,
435 private:
void LoadPlugins();
439 private: std::vector<VisualPluginPtr> plugins;
444 private:
void GetBoundsHelper(Ogre::SceneNode *_node,
465 private:
void DestroyAllAttachedMovableObjects(
466 Ogre::SceneNode *_sceneNode);
472 private: std::string myMaterialName;
475 private: std::string origMaterialName;
478 private:
float transparency;
482 private:
bool isStatic;
485 private: Ogre::StaticGeometry *staticGeom;
488 private:
bool visible;
491 private: Ogre::RibbonTrail *ribbonTrail;
494 private: Ogre::SkeletonInstance *skeleton;
500 private: std::list<DynamicLines*> lines;
503 private: std::list< std::pair<DynamicLines*, unsigned int> > lineVertices;
506 private: std::string name;
509 private: std::vector<VisualPtr> children;
512 private: Ogre::AnimationState *animState;
518 private: boost::function<void()> onAnimationComplete;
521 private:
bool useRTShader;
524 private:
bool initialized;