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 __TRANSFORM_H__
00030 #define __TRANSFORM_H__
00031
00032 #include "MatrixTransform.h"
00033 #include "SFRotation.h"
00034
00035 namespace H3D {
00036
00086 class H3DAPI_API Transform : public MatrixTransform {
00087 public:
00088
00097 class H3DAPI_API Matrix:
00098 public TypedField< H3D::SFMatrix4f,
00099 Types< SFVec3f, SFRotation, SFVec3f,
00100 SFRotation, SFVec3f > >{
00101 protected:
00102
00104 virtual void update();
00105 };
00106
00107
00109 Transform( Inst< MFChild > _addChildren = 0,
00110 Inst< MFChild > _removeChildren = 0,
00111 Inst< SFVec3f > _center = 0,
00112 Inst< MFChild > _children = 0,
00113 Inst< SFNode > _metadata = 0,
00114 Inst< SFRotation > _rotation = 0,
00115 Inst< SFVec3f > _scale = 0,
00116 Inst< SFRotation > _scaleOrientation = 0,
00117 Inst< SFVec3f > _translation = 0,
00118 Inst< SFBound > _bound = 0,
00119 Inst< SFVec3f > _bboxCenter = 0,
00120 Inst< SFVec3f > _bboxSize = 0,
00121 Inst< SFTransformedBound > _transformedBound = 0,
00122 Inst< Matrix > _matrix = 0,
00123 Inst< SFMatrix4f > _accumulatedForward = 0,
00124 Inst< SFMatrix4f > _accumulatedInverse = 0 );
00125
00126
00127 virtual H3DNodeDatabase *getDatabase() { return &database; }
00128
00129
00138 auto_ptr< SFVec3f > center;
00139
00146 auto_ptr< SFRotation > rotation;
00147
00158 auto_ptr< SFVec3f > scale;
00159
00167 auto_ptr< SFRotation > scaleOrientation;
00168
00175 auto_ptr< SFVec3f > translation;
00176
00178 static H3DNodeDatabase database;
00179 };
00180 }
00181
00182 #endif