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 __BILLBOARD_H__
00030 #define __BILLBOARD_H__
00031
00032 #include "MatrixTransform.h"
00033
00034 namespace H3D {
00035
00092 class H3DAPI_API Billboard : public MatrixTransform {
00093 public:
00094
00100 class H3DAPI_API SFMatrix4f:
00101 public TypedField< H3D::SFMatrix4f,
00102 Types< SFVec3f, SFVec3f, SFVec3f > >{
00103 protected:
00104
00106 virtual void update();
00107 };
00108
00109
00111 Billboard( Inst< MFChild > _addChildren = 0,
00112 Inst< MFChild > _removeChildren = 0,
00113 Inst< MFChild > _children = 0,
00114 Inst< SFNode > _metadata = 0,
00115 Inst< SFBound > _bound = 0,
00116 Inst< SFVec3f > _bboxCenter = 0,
00117 Inst< SFVec3f > _bboxSize = 0,
00118 Inst< SFTransformedBound > _transformedBound = 0,
00119 Inst< SFMatrix4f > _matrix = 0,
00120 Inst< SFVec3f > _axisOfRotation = 0 );
00121
00122 #ifdef USE_HAPTICS
00125 virtual void traverseSG( TraverseInfo &ti );
00126 #endif
00127
00137 auto_ptr< SFVec3f > axisOfRotation;
00138
00140 static H3DNodeDatabase database;
00141
00142 protected:
00143
00144
00145 auto_ptr< SFVec3f > vpPosition;
00146
00147
00148
00149 auto_ptr< SFVec3f > vpUp;
00150 };
00151 }
00152
00153 #endif