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 rviz
00046 {
00047 class Shape;
00048
00059 class Arrow : public Object
00060 {
00061 public:
00072 Arrow( Ogre::SceneManager* scene_manager, Ogre::SceneNode* parent_node = 0, float shaft_length = 1.0f, float shaft_diameter = 0.1f,
00073 float head_length = 0.3f, float head_diameter = 0.2f );
00074 virtual ~Arrow();
00075
00084 void set( float shaft_length, float shaft_diameter, float head_length, float head_diameter );
00085
00093 virtual void setColor( float r, float g, float b, float a );
00094 void setColor(const Ogre::ColourValue& color);
00095
00103 void setHeadColor( float r, float g, float b, float a = 1.0f );
00104 void setHeadColor(const Ogre::ColourValue& color);
00112 void setShaftColor( float r, float g, float b, float a = 1.0f );
00113 void setShaftColor(const Ogre::ColourValue& color);
00114
00120 virtual void setOrientation( const Ogre::Quaternion& orientation );
00121
00123 virtual void setPosition( const Ogre::Vector3& position );
00124
00133 void setDirection( const Ogre::Vector3& direction );
00134
00135 virtual void setScale( const Ogre::Vector3& scale );
00136 virtual const Ogre::Vector3& getPosition();
00137 virtual const Ogre::Quaternion& getOrientation();
00138
00143 Ogre::SceneNode* getSceneNode() { return scene_node_; }
00144
00148 void setUserData( const Ogre::Any& data );
00149
00150 Shape* getShaft() { return shaft_; }
00151 Shape* getHead() { return head_; }
00152
00153 private:
00154 Ogre::SceneNode* scene_node_;
00155
00156 Shape* shaft_;
00157 Shape* head_;
00158 };
00159
00160 }
00161
00162 #endif