25 #include <boost/enable_shared_from_this.hpp>
50 class SkeletonInstance;
62 class Visual :
public boost::enable_shared_from_this<Visual>
70 bool _useRTShader =
true);
78 bool _useRTShader =
true);
104 public:
virtual void Load();
111 public:
void SetName(
const std::string &_name);
115 public: std::string
GetName()
const;
158 public: Ogre::MovableObject *
AttachMesh(
const std::string &_meshName,
159 const std::string &_objName=
"");
174 public:
void SetMaterial(
const std::string &_materialName,
175 bool _unique =
true);
214 public:
void SetVisible(
bool _visible,
bool _cascade =
true);
315 unsigned int _index);
323 public:
void InsertMesh(
const std::string &_meshName);
367 boost::function<
void()> _onComplete =
NULL);
409 public:
void ShowCOM(
bool _show);
419 public:
void LoadPlugin(
const std::string &_filename,
420 const std::string &_name,
430 private:
void LoadPlugins();
434 private: std::vector<VisualPluginPtr> plugins;
439 private:
void GetBoundsHelper(Ogre::SceneNode *_node,
444 private: std::string GetMeshName()
const;
460 private:
void DestroyAllAttachedMovableObjects(
461 Ogre::SceneNode *_sceneNode);
467 private: std::string myMaterialName;
470 private: std::string origMaterialName;
473 private:
float transparency;
477 private:
bool isStatic;
480 private: Ogre::StaticGeometry *staticGeom;
483 private:
bool visible;
486 private: Ogre::RibbonTrail *ribbonTrail;
489 private: Ogre::SkeletonInstance *skeleton;
495 private: std::list<DynamicLines*> lines;
498 private: std::list< std::pair<DynamicLines*, unsigned int> > lineVertices;
501 private: std::string name;
504 private: std::vector<VisualPtr> children;
507 private: Ogre::AnimationState *animState;
513 private: boost::function<void()> onAnimationComplete;
516 private:
bool useRTShader;
518 private:
bool initialized;