38 #include "vtkRenderingCoreModule.h" 48 class vtkCameraCallbackCommand;
68 void SetPosition(
double x,
double y,
double z);
70 this->SetPosition(a[0], a[1], a[2]); };
71 vtkGetVector3Macro(Position,
double);
79 void SetFocalPoint(
double x,
double y,
double z);
81 this->SetFocalPoint(a[0], a[1], a[2]);};
82 vtkGetVector3Macro(FocalPoint,
double);
90 void SetViewUp(
double vx,
double vy,
double vz);
92 this->SetViewUp(a[0], a[1], a[2]); }
93 vtkGetVector3Macro(ViewUp,
double);
101 void OrthogonalizeViewUp();
107 void SetDistance(
double);
114 vtkGetMacro(Distance,
double);
123 vtkGetVector3Macro(DirectionOfProjection,
double);
132 void Dolly(
double value);
138 void SetRoll(
double angle);
146 void Roll(
double angle);
154 void Azimuth(
double angle);
163 void Yaw(
double angle);
171 void Elevation(
double angle);
178 void Pitch(
double angle);
205 vtkBooleanMacro(UseHorizontalViewAngle,
vtkTypeBool);
220 void SetViewAngle(
double angle);
221 vtkGetMacro(ViewAngle,
double);
234 void SetParallelScale(
double scale);
235 vtkGetMacro(ParallelScale ,
double);
245 void Zoom(
double factor);
261 void SetClippingRange(
double dNear,
double dFar);
263 { this->SetClippingRange(a[0], a[1]); }
264 vtkGetVector2Macro(ClippingRange,
double);
275 void SetThickness(
double);
276 vtkGetMacro(Thickness,
double);
289 void SetWindowCenter(
double x,
double y);
290 vtkGetVector2Macro(WindowCenter,
double);
306 void SetObliqueAngles(
double alpha,
double beta);
321 vtkGetVector3Macro(ViewPlaneNormal,
double);
333 void SetViewShear(
double dxdz,
double dydz,
double center);
334 void SetViewShear(
double d[3]);
335 vtkGetVector3Macro(ViewShear,
double);
343 vtkSetMacro(EyeAngle,
double);
344 vtkGetMacro(EyeAngle,
double);
354 vtkSetMacro(FocalDisk,
double);
355 vtkGetMacro(FocalDisk,
double);
370 vtkBooleanMacro(UseOffAxisProjection,
vtkTypeBool);
379 vtkSetVector3Macro(ScreenBottomLeft,
double);
380 vtkGetVector3Macro(ScreenBottomLeft,
double);
389 vtkSetVector3Macro(ScreenBottomRight,
double);
390 vtkGetVector3Macro(ScreenBottomRight,
double);
399 vtkSetVector3Macro(ScreenTopRight,
double);
400 vtkGetVector3Macro(ScreenTopRight,
double);
409 vtkSetMacro(EyeSeparation,
double);
410 vtkGetMacro(EyeSeparation,
double);
420 void SetEyePosition(
double eyePosition[3]);
421 void GetEyePosition(
double eyePosition[3]);
428 void GetEyePlaneNormal(
double normal[3]);
447 void SetEyeTransformMatrix(
const double elements[16]);
464 void SetModelTransformMatrix(
const double elements[16]);
502 virtual void SetExplicitProjectionTransformMatrix(
vtkMatrix4x4*);
503 vtkGetObjectMacro(ExplicitProjectionTransformMatrix,
vtkMatrix4x4)
511 vtkSetMacro(UseExplicitProjectionTransformMatrix,
bool)
512 vtkGetMacro(UseExplicitProjectionTransformMatrix,
bool)
513 vtkBooleanMacro(UseExplicitProjectionTransformMatrix,
bool)
525 virtual vtkMatrix4x4 *GetProjectionTransformMatrix(
double aspect,
552 virtual vtkMatrix4x4 *GetCompositeProjectionTransformMatrix(
double aspect,
601 void ViewingRaysModified();
612 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
626 void ComputeViewPlaneNormal();
644 vtkSetMacro(LeftEye,
int);
645 vtkGetMacro(LeftEye,
int);
670 vtkSetMacro(FreezeFocalPoint,
bool);
671 vtkGetMacro(FreezeFocalPoint,
bool);
678 vtkSetMacro(UseScissor,
bool);
679 vtkGetMacro(UseScissor,
bool);
686 void SetScissorRect(
vtkRecti scissorRect);
687 void GetScissorRect(
vtkRecti& scissorRect);
698 void ComputeDistance();
699 virtual void ComputeViewTransform();
705 virtual void ComputeProjectionTransform(
double aspect,
712 void ComputeCompositeProjectionTransform(
double aspect,
716 void ComputeCameraLightTransform();
723 void ComputeWorldToScreenMatrix();
728 void ComputeOffAxisProjectionFrustum();
733 void ComputeModelViewMatrix();
743 double WindowCenter[2];
744 double ObliqueAngles[2];
745 double FocalPoint[3];
749 double ClippingRange[2];
757 double DirectionOfProjection[3];
758 double ViewPlaneNormal[3];
764 double ScreenBottomLeft[3];
765 double ScreenBottomRight[3];
766 double ScreenTopRight[3];
793 friend class vtkCameraCallbackCommand;
807 void operator=(
const vtkCamera&) =
delete;
vtkHomogeneousTransform * UserTransform
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetViewUp(const double a[3])
Set/Get the view up direction for the camera.
vtkTypeUInt32 vtkMTimeType
record modification and/or execution time
abstract specification for renderers
void SetPosition(const double a[3])
Set/Get the position of the camera in world coordinates.
vtkTransform * ViewTransform
vtkTypeBool UseHorizontalViewAngle
virtual void UpdateViewport(vtkRenderer *vtkNotUsed(ren))
Update the viewport.
vtkMatrix4x4 * ModelTransformMatrix
supports function callbacks
vtkTimeStamp WorldToScreenMatrixMTime
a simple class to control print indentation
a virtual camera for 3D rendering
vtkTypeBool UseOffAxisProjection
virtual void Render(vtkRenderer *)
This method causes the camera to set up whatever is required for viewing the scene.
void SetFocalPoint(const double a[3])
Set/Get the focal of the camera in world coordinates.
vtkMatrix4x4 * WorldToScreenMatrix
vtkCameraCallbackCommand * UserViewTransformCallbackCommand
vtkTransform * CameraLightTransform
void SetClippingRange(const double a[2])
Set/Get the location of the near and far clipping planes along the direction of projection.
#define VTK_SIZEHINT(...)
vtkTransform * ModelViewTransform
vtkPerspectiveTransform * Transform
vtkTypeBool ParallelProjection
vtkMatrix4x4 * EyeTransformMatrix
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkMatrix4x4 * ExplicitProjectionTransformMatrix
vtkTimeStamp ViewingRaysMTime
vtkHomogeneousTransform * UserViewTransform
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
bool UseExplicitProjectionTransformMatrix
vtkPerspectiveTransform * ProjectionTransform