vtkProp3D.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00036 #ifndef __vtkProp3D_h
00037 #define __vtkProp3D_h
00038
00039 #include "vtkProp.h"
00040
00041 class vtkRenderer;
00042 class vtkTransform;
00043 class vtkLinearTransform;
00044
00045 class VTK_RENDERING_EXPORT vtkProp3D : public vtkProp
00046 {
00047 public:
00048 vtkTypeRevisionMacro(vtkProp3D,vtkProp);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052 void ShallowCopy(vtkProp *prop);
00053
00055
00056 virtual void SetPosition(float _arg1, float _arg2, float _arg3)
00057 {
00058 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00059 "): setting Position to (" << _arg1 << "," << _arg2 << "," <<
00060 _arg3 << ")");
00061 if ((this->Position[0] != _arg1)||
00062 (this->Position[1] != _arg2)||
00063 (this->Position[2] != _arg3))
00064 {
00065 this->Position[0] = _arg1;
00066 this->Position[1] = _arg2;
00067 this->Position[2] = _arg3;
00068 this->Modified();
00069 this->IsIdentity = 0;
00070 }
00071 };
00072 virtual void SetPosition (float _arg[3])
00073 {
00074 this->SetPosition (_arg[0], _arg[1], _arg[2]);
00075 }
00076 vtkGetVectorMacro(Position,float,3);
00077 void AddPosition(float deltaPosition[3]);
00078 void AddPosition(float deltaX,float deltaY,float deltaZ);
00080
00082
00084 virtual void SetOrigin(float _arg1, float _arg2, float _arg3)
00085 {
00086 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00087 "): setting Origin to (" << _arg1 << "," << _arg2 << "," <<
00088 _arg3 << ")");
00089 if ((this->Origin[0] != _arg1)||
00090 (this->Origin[1] != _arg2)||
00091 (this->Origin[2] != _arg3))
00092 {
00093 this->Origin[0] = _arg1;
00094 this->Origin[1] = _arg2;
00095 this->Origin[2] = _arg3;
00096 this->Modified();
00097 this->IsIdentity = 0;
00098 }
00099 };
00100 virtual void SetOrigin(float _arg[3])
00101 {
00102 this->SetOrigin (_arg[0], _arg[1], _arg[2]);
00103 }
00104 vtkGetVectorMacro(Origin,float,3);
00106
00108
00111 virtual void SetScale(float _arg1, float _arg2, float _arg3)
00112 {
00113 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00114 "): setting Scale to (" << _arg1 << "," << _arg2 << "," <<
00115 _arg3 << ")");
00116 if ((this->Scale[0] != _arg1)||
00117 (this->Scale[1] != _arg2)||
00118 (this->Scale[2] != _arg3))
00119 {
00120 this->Scale[0] = _arg1;
00121 this->Scale[1] = _arg2;
00122 this->Scale[2] = _arg3;
00123 this->Modified();
00124 this->IsIdentity = 0;
00125 }
00126 };
00127 virtual void SetScale (float _arg[3])
00128 {
00129 this->SetScale (_arg[0], _arg[1], _arg[2]);
00130 }
00131 vtkGetVectorMacro(Scale,float,3);
00133
00135 void SetScale(float s) {this->SetScale(s,s,s);};
00136
00138
00147 void SetUserTransform(vtkLinearTransform *transform);
00148 vtkGetObjectMacro(UserTransform,vtkLinearTransform);
00150
00152
00153 void SetUserMatrix(vtkMatrix4x4 *matrix);
00154 vtkMatrix4x4 *GetUserMatrix();
00156
00158
00161 virtual void GetMatrix(vtkMatrix4x4 *m);
00162 virtual void GetMatrix(double m[16]);
00164
00169 void GetBounds(float bounds[6]);
00170 virtual float *GetBounds() = 0;
00172
00174 float *GetCenter();
00175
00177 float *GetXRange();
00178
00180 float *GetYRange();
00181
00183 float *GetZRange();
00184
00186 float GetLength();
00187
00193 void RotateX(float);
00194
00200 void RotateY(float);
00201
00207 void RotateZ(float);
00208
00212 void RotateWXYZ(float,float,float,float);
00213
00217 void SetOrientation(float,float,float);
00218
00222 void SetOrientation(float a[3]);
00223
00225
00229 float *GetOrientation();
00230 void GetOrientation(float o[3]);
00232
00234 float *GetOrientationWXYZ();
00235
00239 void AddOrientation(float,float,float);
00240
00244 void AddOrientation(float a[3]);
00245
00254 void PokeMatrix(vtkMatrix4x4 *matrix);
00255
00258 void InitPathTraversal();
00259
00261 unsigned long int GetMTime();
00262
00264 unsigned long int GetUserTransformMatrixMTime();
00265
00267 virtual void ComputeMatrix();
00268
00270
00271 vtkMatrix4x4 *GetMatrix()
00272 {
00273 this->ComputeMatrix();
00274 return this->Matrix;
00275 }
00277
00279
00280 vtkGetMacro(IsIdentity,int);
00282
00283 protected:
00284 vtkProp3D();
00285 ~vtkProp3D();
00286
00287 vtkLinearTransform *UserTransform;
00288 vtkMatrix4x4 *UserMatrix;
00289 vtkMatrix4x4 *Matrix;
00290 vtkTimeStamp MatrixMTime;
00291 float Origin[3];
00292 float Position[3];
00293 float Orientation[3];
00294 float Scale[3];
00295 float Center[3];
00296 vtkTransform *Transform;
00297 float Bounds[6];
00298 vtkProp3D *CachedProp3D;
00299 int IsIdentity;
00300 private:
00301 vtkProp3D(const vtkProp3D&);
00302 void operator=(const vtkProp3D&);
00303 };
00304
00305 #endif
00306