48 #ifndef vtkPerspectiveTransform_h
49 #define vtkPerspectiveTransform_h
51 #include "vtkCommonTransformsModule.h"
76 { this->Concatenation->Inverse(); this->
Modified(); };
86 void AdjustViewport(
double oldXMin,
double oldXMax,
87 double oldYMin,
double oldYMax,
88 double newXMin,
double newXMax,
89 double newYMin,
double newYMax);
98 void AdjustZBuffer(
double oldNearZ,
double oldFarZ,
99 double newNearZ,
double newFarZ);
106 void Ortho(
double xmin,
double xmax,
double ymin,
double ymax,
107 double znear,
double zfar);
115 void Frustum(
double xmin,
double xmax,
double ymin,
double ymax,
116 double znear,
double zfar);
124 void Perspective(
double angle,
double aspect,
double znear,
double zfar);
139 void Shear(
double dxdz,
double dydz,
double zplane);
151 void Stereo(
double angle,
double focaldistance);
158 void SetupCamera(
const double position[3],
const double focalpoint[3],
159 const double viewup[3]);
161 void SetupCamera(
double p0,
double p1,
double p2,
162 double fp0,
double fp1,
double fp2,
163 double vup0,
double vup1,
double vup2);
171 this->Concatenation->Translate(x,y,z); };
183 void RotateWXYZ(
double angle,
double x,
double y,
double z) {
184 this->Concatenation->Rotate(angle,x,y,z); };
186 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]); };
188 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]); };
197 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); };
198 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); };
199 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); };
208 void Scale(
double x,
double y,
double z) {
209 this->Concatenation->Scale(x,y,z); };
210 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); };
211 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); };
220 this->SetMatrix(*matrix->
Element); };
222 this->Identity(); this->Concatenate(elements); };
231 this->Concatenate(*matrix->
Element); };
233 this->Concatenation->Concatenate(elements); };
253 if (this->Concatenation->GetPreMultiplyFlag()) {
return; }
254 this->Concatenation->SetPreMultiplyFlag(1); this->
Modified(); };
264 if (!this->Concatenation->GetPreMultiplyFlag()) {
return; }
265 this->Concatenation->SetPreMultiplyFlag(0); this->
Modified(); };
272 return this->Concatenation->GetNumberOfTransforms() +
273 (this->Input == NULL ? 0 : 1); };
286 if (this->Input == NULL)
288 t=this->Concatenation->GetTransform(i);
290 else if (i < this->Concatenation->GetNumberOfPreTransforms())
292 t=this->Concatenation->GetTransform(i);
294 else if (i > this->Concatenation->GetNumberOfPreTransforms())
296 t=this->Concatenation->GetTransform(i-1);
298 else if (this->GetInverseFlag())
331 return this->Concatenation->GetInverseFlag(); };
337 void Push() {
if (this->Stack == NULL) {
339 this->Stack->Push(&this->Concatenation);
348 void Pop() {
if (this->Stack == NULL) {
return; }
349 this->Stack->Pop(&this->Concatenation);
376 ~vtkPerspectiveTransform() VTK_OVERRIDE;
379 void InternalUpdate() VTK_OVERRIDE;
386 vtkPerspectiveTransform(const vtkPerspectiveTransform&) VTK_DELETE_FUNCTION;
387 void operator=(const vtkPerspectiveTransform&) VTK_DELETE_FUNCTION;
represent and manipulate 4x4 transformation matrices
vtkTypeUInt64 vtkMTimeType
a simple class to control print indentation
virtual void Modified()
Update the modification time for this object.
double Element[4][4]
The internal data is public for historical reasons. Do not use!
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...