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 __FITTOBOXTRANSFORM_H__
00030 #define __FITTOBOXTRANSFORM_H__
00031
00032 #include "MatrixTransform.h"
00033
00034 namespace H3D {
00035
00054
00055 class H3DAPI_API FitToBoxTransform : public MatrixTransform {
00056 public:
00071 class SFMatrix4f: public TypedField< MatrixTransform::SFMatrix4f,
00072 Types< SFVec3f, SFVec3f,
00073 SFBound, SFBool, SFBool > > {
00075 virtual void update();
00076 };
00077
00078
00080 FitToBoxTransform(
00081 Inst< MFChild > _addChildren = 0,
00082 Inst< MFChild > _removeChildren = 0,
00083 Inst< MFChild > _children = 0,
00084 Inst< SFNode > _metadata = 0,
00085 Inst< SFBound > _bound = 0,
00086 Inst< SFVec3f > _bboxCenter = 0,
00087 Inst< SFVec3f > _bboxSize = 0,
00088 Inst< SFTransformedBound > _transformedBound = 0,
00089 Inst< SFMatrix4f > _matrix = 0,
00090 Inst< SFVec3f > _boxSize = 0,
00091 Inst< SFVec3f > _boxCenter = 0,
00092 Inst< SFBool > _uniformScalingOnly = 0,
00093 Inst< SFBool > _active = 0 );
00094
00102 auto_ptr< SFVec3f > boxSize;
00103
00110 auto_ptr< SFVec3f > boxCenter;
00111
00119 auto_ptr< SFBool > uniformScalingOnly;
00120
00128 auto_ptr< SFBool > active;
00129
00131 static H3DNodeDatabase database;
00132 };
00133 }
00134
00135 #endif