vertexBufferNode.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef MESH_VERTEXBUFFERNODE_H
00025 #define MESH_VERTEXBUFFERNODE_H
00026
00027
00028 #include "vertexBufferBase.h"
00029
00030 namespace mesh
00031 {
00032
00033 class VertexBufferNode : public VertexBufferBase
00034 {
00035 public:
00036 VertexBufferNode() : _left( 0 ), _right( 0 ) {}
00037 virtual ~VertexBufferNode();
00038
00039 virtual void render( VertexBufferState& state ) const;
00040 virtual Index getNumberOfVertices() const
00041 {return _left->getNumberOfVertices()+_right->getNumberOfVertices();}
00042
00043 virtual const VertexBufferBase* getLeft() const { return _left; }
00044 virtual const VertexBufferBase* getRight() const { return _right; }
00045
00046 protected:
00047 virtual void toStream( std::ostream& os );
00048 virtual void fromMemory( char** addr, VertexBufferData& globalData );
00049
00050 virtual void setupTree( VertexData& data, const Index start,
00051 const Index length, const Axis axis,
00052 const size_t depth,
00053 VertexBufferData& globalData );
00054 virtual const BoundingSphere& updateBoundingSphere();
00055 virtual void updateRange();
00056
00057 private:
00058
00059 VertexBufferBase* _left;
00060 VertexBufferBase* _right;
00061 friend class eqPly::VertexBufferDist;
00062 };
00063 }
00064
00065
00066 #endif // MESH_VERTEXBUFFERNODE_H