Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Rendering/vtkProp3D.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00049 #ifndef __vtkProp3D_h
00050 #define __vtkProp3D_h
00051
00052 #include "vtkProp.h"
00053
00054 class vtkRenderer;
00055 class vtkTransform;
00056 class vtkLinearTransform;
00057
00058 class VTK_RENDERING_EXPORT vtkProp3D : public vtkProp
00059 {
00060 public:
00061 vtkTypeRevisionMacro(vtkProp3D,vtkProp);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065 void ShallowCopy(vtkProp *prop);
00066
00068
00069 virtual void SetPosition(float _arg1, float _arg2, float _arg3)
00070 {
00071 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00072 "): setting Position to (" << _arg1 << "," << _arg2 << "," <<
00073 _arg3 << ")");
00074 if ((this->Position[0] != _arg1)||
00075 (this->Position[1] != _arg2)||
00076 (this->Position[2] != _arg3))
00077 {
00078 this->Position[0] = _arg1;
00079 this->Position[1] = _arg2;
00080 this->Position[2] = _arg3;
00081 this->Modified();
00082 this->IsIdentity = 0;
00083 }
00084 };
00085 virtual void SetPosition (float _arg[3])
00086 {
00087 this->SetPosition (_arg[0], _arg[1], _arg[2]);
00088 }
00089 vtkGetVectorMacro(Position,float,3);
00090 void AddPosition(float deltaPosition[3]);
00091 void AddPosition(float deltaX,float deltaY,float deltaZ);
00093
00095
00097 virtual void SetOrigin(float _arg1, float _arg2, float _arg3)
00098 {
00099 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00100 "): setting Origin to (" << _arg1 << "," << _arg2 << "," <<
00101 _arg3 << ")");
00102 if ((this->Origin[0] != _arg1)||
00103 (this->Origin[1] != _arg2)||
00104 (this->Origin[2] != _arg3))
00105 {
00106 this->Origin[0] = _arg1;
00107 this->Origin[1] = _arg2;
00108 this->Origin[2] = _arg3;
00109 this->Modified();
00110 this->IsIdentity = 0;
00111 }
00112 };
00113 virtual void SetOrigin(float _arg[3])
00114 {
00115 this->SetOrigin (_arg[0], _arg[1], _arg[2]);
00116 }
00117 vtkGetVectorMacro(Origin,float,3);
00119
00121
00124 virtual void SetScale(float _arg1, float _arg2, float _arg3)
00125 {
00126 vtkDebugMacro(<< this->GetClassName() << " (" << this <<
00127 "): setting Scale to (" << _arg1 << "," << _arg2 << "," <<
00128 _arg3 << ")");
00129 if ((this->Scale[0] != _arg1)||
00130 (this->Scale[1] != _arg2)||
00131 (this->Scale[2] != _arg3))
00132 {
00133 this->Scale[0] = _arg1;
00134 this->Scale[1] = _arg2;
00135 this->Scale[2] = _arg3;
00136 this->Modified();
00137 this->IsIdentity = 0;
00138 }
00139 };
00140 virtual void SetScale (float _arg[3])
00141 {
00142 this->SetScale (_arg[0], _arg[1], _arg[2]);
00143 }
00144 vtkGetVectorMacro(Scale,float,3);
00146
00148 void SetScale(float s) {this->SetScale(s,s,s);};
00149
00151
00160 void SetUserTransform(vtkLinearTransform *transform);
00161 vtkGetObjectMacro(UserTransform,vtkLinearTransform);
00163
00165
00166 void SetUserMatrix(vtkMatrix4x4 *matrix);
00167 vtkMatrix4x4 *GetUserMatrix();
00169
00171
00174 virtual void GetMatrix(vtkMatrix4x4 *m);
00175 virtual void GetMatrix(double m[16]);
00177
00182 void GetBounds(float bounds[6]);
00183 virtual float *GetBounds() = 0;
00185
00187 float *GetCenter();
00188
00190 float *GetXRange();
00191
00193 float *GetYRange();
00194
00196 float *GetZRange();
00197
00199 float GetLength();
00200
00206 void RotateX(float);
00207
00213 void RotateY(float);
00214
00220 void RotateZ(float);
00221
00225 void RotateWXYZ(float,float,float,float);
00226
00230 void SetOrientation(float,float,float);
00231
00235 void SetOrientation(float a[3]);
00236
00238
00242 float *GetOrientation();
00243 void GetOrientation(float o[3]);
00245
00247 float *GetOrientationWXYZ();
00248
00252 void AddOrientation(float,float,float);
00253
00257 void AddOrientation(float a[3]);
00258
00267 void PokeMatrix(vtkMatrix4x4 *matrix);
00268
00271 void InitPathTraversal();
00272
00274 unsigned long int GetMTime();
00275
00277 unsigned long int GetUserTransformMatrixMTime();
00278
00280 virtual void ComputeMatrix();
00281
00283
00284 vtkMatrix4x4 *GetMatrix()
00285 {
00286 this->ComputeMatrix();
00287 return this->Matrix;
00288 }
00290
00292
00293 vtkGetMacro(IsIdentity,int);
00295
00296 protected:
00297 vtkProp3D();
00298 ~vtkProp3D();
00299
00300 vtkLinearTransform *UserTransform;
00301 vtkMatrix4x4 *UserMatrix;
00302 vtkMatrix4x4 *Matrix;
00303 vtkTimeStamp MatrixMTime;
00304 float Origin[3];
00305 float Position[3];
00306 float Orientation[3];
00307 float Scale[3];
00308 float Center[3];
00309 vtkTransform *Transform;
00310 float Bounds[6];
00311 vtkProp3D *CachedProp3D;
00312 int IsIdentity;
00313 private:
00314 vtkProp3D(const vtkProp3D&);
00315 void operator=(const vtkProp3D&);
00316 };
00317
00318 #endif
00319