Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "object.h"
00031
00032 #ifndef OGRE_TOOLS_ARROW_H
00033 #define OGRE_TOOLS_ARROW_H
00034
00035 namespace Ogre
00036 {
00037 class SceneManager;
00038 class SceneNode;
00039 class Vector3;
00040 class Quaternion;
00041 class ColourValue;
00042 class Any;
00043 }
00044
00045 namespace ogre_tools
00046 {
00047 class Shape;
00048
00053 class Arrow : public Object
00054 {
00055 public:
00066 Arrow( Ogre::SceneManager* scene_manager, Ogre::SceneNode* parent_node = 0, float shaft_length = 1.0f, float shaft_radius = 0.1f,
00067 float head_length = 0.3f, float head_radius = 0.2f );
00068 virtual ~Arrow();
00069
00078 void set( float shaft_length, float shaft_radius, float head_length, float head_radius );
00079
00087 virtual void setColor( float r, float g, float b, float a );
00088 void setColor(const Ogre::ColourValue& color);
00089
00097 void setHeadColor( float r, float g, float b, float a = 1.0f );
00098 void setHeadColor(const Ogre::ColourValue& color);
00106 void setShaftColor( float r, float g, float b, float a = 1.0f );
00107 void setShaftColor(const Ogre::ColourValue& color);
00108
00109 virtual void setOrientation( const Ogre::Quaternion& orientation );
00110 virtual void setPosition( const Ogre::Vector3& position );
00111 virtual void setScale( const Ogre::Vector3& scale );
00112 virtual const Ogre::Vector3& getPosition();
00113 virtual const Ogre::Quaternion& getOrientation();
00114
00119 Ogre::SceneNode* getSceneNode() { return scene_node_; }
00120
00124 void setUserData( const Ogre::Any& data );
00125
00126 Shape* getShaft() { return shaft_; }
00127 Shape* getHead() { return head_; }
00128
00129 private:
00130 Ogre::SceneNode* scene_node_;
00131
00132 Shape* shaft_;
00133 Shape* head_;
00134 };
00135
00136 }
00137
00138 #endif