Go to the documentation of this file.00001 #ifndef __LINE3D_H__
00002 #define __LINE3D_H__
00003
00004 #include "Ogre.h"
00005 #include <vector>
00006
00007 using namespace Ogre;
00008
00009 #define POSITION_BINDING 0
00010 #define TEXCOORD_BINDING 1
00011
00012 class Line3D:public SimpleRenderable
00013 {
00014 public:
00015 Line3D(void);
00016 ~Line3D(void);
00017
00018 void addPoint(const Vector3 &p);
00019 const Vector3 &getPoint(unsigned short index) const;
00020 unsigned short getNumPoints(void) const;
00021 void updatePoint(unsigned short index, const Vector3 &value);
00022 void drawLine(Vector3 &start, Vector3 &end);
00023 void drawLines(void);
00024
00025 Real getSquaredViewDepth(const Camera *cam) const;
00026 Real getBoundingRadius(void) const;
00027 protected:
00028
00029 const Quaternion &getWorldOrientation(void) const;
00030 const Vector3 &getWorldPosition(void) const;
00031
00032 std::vector<Vector3> mPoints;
00033 bool mDrawn;
00034 };
00035
00036 #endif
00037