00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00027
00029 #ifndef __COORDINATE_H__
00030 #define __COORDINATE_H__
00031
00032 #include "X3DCoordinateNode.h"
00033 #include "FieldTemplates.h"
00034 #include <GL/glew.h>
00035 #include "MFVec3f.h"
00036
00037 namespace H3D {
00038
00046 class H3DAPI_API Coordinate : public X3DCoordinateNode {
00047 public:
00049 Coordinate( Inst< SFNode > _metadata = 0,
00050 Inst< MFVec3f > _point = 0 );
00051
00054 virtual void render( int index ) {
00055 const Vec3f &v = point->getValueByIndex( index );
00056 glVertex3f( v.x, v.y, v.z );
00057 };
00058
00061 virtual void renderArray();
00062
00064 virtual void disableArray();
00065
00066
00067 virtual Vec3f getCoord( int index ){
00068 return point->getValueByIndex( index );
00069 }
00070
00072 virtual unsigned int nrAvailableCoords() {
00073 return point->size();
00074 };
00075
00080 auto_ptr< MFVec3f > point;
00081
00083 static H3DNodeDatabase database;
00084 };
00085 }
00086
00087 #endif