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 #ifndef OGRE_TOOLS_AXES_H
00031 #define OGRE_TOOLS_AXES_H
00032
00033 #include "object.h"
00034
00035 #include <stdint.h>
00036
00037 #include <vector>
00038
00039 namespace Ogre
00040 {
00041 class SceneManager;
00042 class SceneNode;
00043 class Vector3;
00044 class Quaternion;
00045 class Any;
00046 class ColourValue;
00047 }
00048
00049 namespace ogre_tools
00050 {
00051 class Shape;
00052
00057 class Axes : public Object
00058 {
00059 public:
00067 Axes( Ogre::SceneManager* manager, Ogre::SceneNode* parent_node = NULL, float length = 1.0f, float radius = 0.1f );
00068 virtual ~Axes();
00069
00076 void set( float length, float radius );
00077
00078 virtual void setOrientation( const Ogre::Quaternion& orientation );
00079 virtual void setPosition( const Ogre::Vector3& position );
00080 virtual void setScale( const Ogre::Vector3& scale );
00081 virtual void setColor( float r, float g, float b, float a );
00082 virtual const Ogre::Vector3& getPosition();
00083 virtual const Ogre::Quaternion& getOrientation();
00084
00089 Ogre::SceneNode* getSceneNode() { return scene_node_; }
00090
00094 void setUserData( const Ogre::Any& data );
00095
00096 Shape* getXShape() { return x_axis_; }
00097 Shape* getYShape() { return y_axis_; }
00098 Shape* getZShape() { return z_axis_; }
00099
00100 void setXColor(const Ogre::ColourValue& col);
00101 void setYColor(const Ogre::ColourValue& col);
00102 void setZColor(const Ogre::ColourValue& col);
00103 void setToDefaultColors();
00104 static const Ogre::ColourValue& getDefaultXColor();
00105 static const Ogre::ColourValue& getDefaultYColor();
00106 static const Ogre::ColourValue& getDefaultZColor();
00107
00108 private:
00109
00110
00111 Axes( const Axes &other ): Object(0) {}
00112 Axes& operator=( const Axes &other ) { return *this; }
00113
00114 Ogre::SceneNode* scene_node_;
00115
00116 Shape* x_axis_;
00117 Shape* y_axis_;
00118 Shape* z_axis_;
00119 };
00120
00121 }
00122
00123 #endif
00124