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 __BOX_H__
00030 #define __BOX_H__
00031
00032 #include "X3DGeometryNode.h"
00033
00034 namespace H3D {
00035
00066 class H3DAPI_API Box : public X3DGeometryNode {
00067 public:
00068
00074 class SFBound: public X3DGeometryNode::SFBound {
00076 virtual void update() {
00077 Vec3f b = static_cast< SFVec3f * >( routes_in[0] )->getValue();
00078 BoxBound *bb = new BoxBound;
00079 bb->size->setValue( b );
00080 value = bb;
00081 }
00082 };
00083
00085 Box( Inst< SFNode > _metadata = 0,
00086 Inst< SFBound > _bound = 0,
00087 Inst< SFVec3f > _size = 0,
00088 Inst< SFBool > _solid = 0 );
00089
00091 virtual void render();
00092
00093 #ifdef USE_HAPTICS
00096 virtual void traverseSG( TraverseInfo &ti );
00097 #endif
00098
00104 auto_ptr< SFVec3f > size;
00105
00111 auto_ptr< SFBool > solid;
00112
00114 static H3DNodeDatabase database;
00115 };
00116 }
00117
00118 #endif