47 class vtkCameraCallbackCommand;
63 void SetPosition(
double x,
double y,
double z);
65 this->SetPosition(a[0], a[1], a[2]); };
66 vtkGetVector3Macro(Position,
double);
72 void SetFocalPoint(
double x,
double y,
double z);
74 this->SetFocalPoint(a[0], a[1], a[2]);};
75 vtkGetVector3Macro(FocalPoint,
double);
81 void SetViewUp(
double vx,
double vy,
double vz);
83 this->SetViewUp(a[0], a[1], a[2]); }
84 vtkGetVector3Macro(ViewUp,
double);
90 void OrthogonalizeViewUp();
94 void SetDistance(
double);
99 vtkGetMacro(Distance,
double);
106 vtkGetVector3Macro(DirectionOfProjection,
double);
113 void Dolly(
double value);
117 void SetRoll(
double angle);
123 void Roll(
double angle);
129 void Azimuth(
double angle);
136 void Yaw(
double angle);
142 void Elevation(
double angle);
147 void Pitch(
double angle);
153 void SetParallelProjection(
int flag);
154 vtkGetMacro(ParallelProjection,
int);
155 vtkBooleanMacro(ParallelProjection,
int);
165 void SetUseHorizontalViewAngle(
int flag);
166 vtkGetMacro(UseHorizontalViewAngle,
int);
167 vtkBooleanMacro(UseHorizontalViewAngle,
int);
178 void SetViewAngle(
double angle);
179 vtkGetMacro(ViewAngle,
double);
188 void SetParallelScale(
double scale);
189 vtkGetMacro(ParallelScale ,
double);
196 void Zoom(
double factor);
208 void SetClippingRange(
double dNear,
double dFar);
210 { this->SetClippingRange(a[0], a[1]); }
211 vtkGetVector2Macro(ClippingRange,
double);
218 void SetThickness(
double);
219 vtkGetMacro(Thickness,
double);
228 void SetWindowCenter(
double x,
double y);
229 vtkGetVector2Macro(WindowCenter,
double);
240 void SetObliqueAngles(
double alpha,
double beta);
251 vtkGetVector3Macro(ViewPlaneNormal,
double);
259 void SetViewShear(
double dxdz,
double dydz,
double center);
260 void SetViewShear(
double d[3]);
261 vtkGetVector3Macro(ViewShear,
double);
267 vtkSetMacro(EyeAngle,
double);
268 vtkGetMacro(EyeAngle,
double);
276 vtkSetMacro(FocalDisk,
double);
277 vtkGetMacro(FocalDisk,
double);
285 vtkSetMacro(UseOffAxisProjection,
int);
286 vtkGetMacro(UseOffAxisProjection,
int);
287 vtkBooleanMacro(UseOffAxisProjection,
int);
293 vtkSetVector3Macro(ScreenBottomLeft,
double);
294 vtkGetVector3Macro(ScreenBottomLeft,
double);
300 vtkSetVector3Macro(ScreenBottomRight,
double);
301 vtkGetVector3Macro(ScreenBottomRight,
double);
307 vtkSetVector3Macro(ScreenTopRight,
double);
308 vtkGetVector3Macro(ScreenTopRight,
double);
314 vtkSetMacro(EyeSeparation,
double);
315 vtkGetMacro(EyeSeparation,
double);
323 void SetEyePosition(
double eyePosition[3]);
324 void GetEyePosition(
double eyePosition[3]);
329 void GetEyePlaneNormal(
double normal[3]);
342 void SetEyeTransformMatrix(
const double elements[16]);
355 void SetModelTransformMatrix(
const double elements[16]);
384 virtual vtkMatrix4x4 *GetProjectionTransformMatrix(
double aspect,
409 virtual vtkMatrix4x4 *GetCompositeProjectionTransformMatrix(
double aspect,
445 unsigned long GetViewingRaysMTime();
449 void ViewingRaysModified();
458 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
462 double *GetOrientation();
463 double *GetOrientationWXYZ();
468 void ComputeViewPlaneNormal();
480 vtkSetMacro(LeftEye,
int);
481 vtkGetMacro(LeftEye,
int);
496 vtkSetMacro(FreezeFocalPoint,
bool);
497 vtkGetMacro(FreezeFocalPoint,
bool);
502 vtkSetMacro(UseScissor,
bool);
503 vtkGetMacro(UseScissor,
bool);
508 void SetScissorRect(
vtkRecti scissorRect);
509 void GetScissorRect(
vtkRecti& scissorRect);
518 void ComputeDistance();
519 virtual void ComputeViewTransform();
524 virtual void ComputeProjectionTransform(
double aspect,
531 void ComputeCompositeProjectionTransform(
double aspect,
536 void ComputeCameraLightTransform();
541 void ComputeWorldToScreenMatrix();
544 void ComputeOffAxisProjectionFrustum();
547 void ComputeModelViewMatrix();
553 double WindowCenter[2];
554 double ObliqueAngles[2];
555 double FocalPoint[3];
559 double ClippingRange[2];
567 double DirectionOfProjection[3];
568 double ViewPlaneNormal[3];
574 double ScreenBottomLeft[3];
575 double ScreenBottomRight[3];
576 double ScreenTopRight[3];
600 friend class vtkCameraCallbackCommand;
vtkHomogeneousTransform * UserTransform
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
void SetViewUp(const double a[3])
int UseHorizontalViewAngle
record modification and/or execution time
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
abstract specification for renderers
void SetPosition(const double a[3])
vtkTransform * ViewTransform
virtual void UpdateViewport(vtkRenderer *vtkNotUsed(ren))
vtkMatrix4x4 * ModelTransformMatrix
supports function callbacks
vtkTimeStamp WorldToScreenMatrixMTime
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
a virtual camera for 3D rendering
virtual void Render(vtkRenderer *)
void SetFocalPoint(const double a[3])
vtkMatrix4x4 * WorldToScreenMatrix
vtkCameraCallbackCommand * UserViewTransformCallbackCommand
vtkTransform * CameraLightTransform
void SetClippingRange(const double a[2])
vtkTransform * ModelViewTransform
vtkPerspectiveTransform * Transform
vtkMatrix4x4 * EyeTransformMatrix
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTKRENDERINGCORE_EXPORT
vtkTimeStamp ViewingRaysMTime
vtkHomogeneousTransform * UserViewTransform
vtkPerspectiveTransform * ProjectionTransform