55#ifndef vtkPerspectiveTransform_h 
   56#define vtkPerspectiveTransform_h 
   58#include "vtkCommonTransformsModule.h"  
   63VTK_ABI_NAMESPACE_BEGIN
 
   78    this->Concatenation->Identity();
 
   89    this->Concatenation->Inverse();
 
  101  void AdjustViewport(
double oldXMin, 
double oldXMax, 
double oldYMin, 
double oldYMax,
 
  102    double newXMin, 
double newXMax, 
double newYMin, 
double newYMax);
 
  111  void AdjustZBuffer(
double oldNearZ, 
double oldFarZ, 
double newNearZ, 
double newFarZ);
 
  118  void Ortho(
double xmin, 
double xmax, 
double ymin, 
double ymax, 
double znear, 
double zfar);
 
  126  void Frustum(
double xmin, 
double xmax, 
double ymin, 
double ymax, 
double znear, 
double zfar);
 
  134  void Perspective(
double angle, 
double aspect, 
double znear, 
double zfar);
 
  149  void Shear(
double dxdz, 
double dydz, 
double zplane);
 
  161  void Stereo(
double angle, 
double focaldistance);
 
  168  void SetupCamera(
const double position[3], 
const double focalpoint[3], 
const double viewup[3]);
 
  170  void SetupCamera(
double p0, 
double p1, 
double p2, 
double fp0, 
double fp1, 
double fp2, 
double vup0,
 
  171    double vup1, 
double vup2);
 
  178  void Translate(
double x, 
double y, 
double z) { this->Concatenation->Translate(x, y, z); }
 
  192    this->Concatenation->Rotate(angle, x, y, z);
 
  196    this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
 
  200    this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
 
  210  void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
 
  211  void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
 
  212  void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
 
  221  void Scale(
double x, 
double y, 
double z) { this->Concatenation->Scale(x, y, z); }
 
  222  void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
 
  223  void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
 
  235    this->Concatenate(elements);
 
  245  void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
 
  266    if (this->Concatenation->GetPreMultiplyFlag())
 
  270    this->Concatenation->SetPreMultiplyFlag(1);
 
  283    if (!this->Concatenation->GetPreMultiplyFlag())
 
  287    this->Concatenation->SetPreMultiplyFlag(0);
 
  297    return this->Concatenation->GetNumberOfTransforms() + (this->Input == 
nullptr ? 0 : 1);
 
  311    if (this->Input == 
nullptr)
 
  313      t = this->Concatenation->GetTransform(i);
 
  315    else if (i < this->Concatenation->GetNumberOfPreTransforms())
 
  317      t = this->Concatenation->GetTransform(i);
 
  319    else if (i > this->Concatenation->GetNumberOfPreTransforms())
 
  321      t = this->Concatenation->GetTransform(i - 1);
 
  323    else if (this->GetInverseFlag())
 
  363    if (this->Stack == 
nullptr)
 
  367    this->Stack->Push(&this->Concatenation);
 
  379    if (this->Stack == 
nullptr)
 
  383    this->Stack->Pop(&this->Concatenation);
 
a simple class to control print indentation
 
represent and manipulate 4x4 transformation matrices
 
double Element[4][4]
The internal data is public for historical reasons. Do not use!
 
vtkTypeUInt32 vtkMTimeType