28 #include "vtkRenderingCoreModule.h"
30 VTK_ABI_NAMESPACE_BEGIN
38 class vtkCameraCallbackCommand;
58 void SetPosition(
double x,
double y,
double z);
60 vtkGetVector3Macro(
Position,
double);
68 void SetFocalPoint(
double x,
double y,
double z);
70 vtkGetVector3Macro(FocalPoint,
double);
78 void SetViewUp(
double vx,
double vy,
double vz);
80 vtkGetVector3Macro(ViewUp,
double);
88 void OrthogonalizeViewUp();
94 void SetDistance(
double);
101 vtkGetMacro(Distance,
double);
110 vtkGetVector3Macro(DirectionOfProjection,
double);
119 void Dolly(
double value);
125 void SetRoll(
double angle);
133 void Roll(
double angle);
141 void Azimuth(
double angle);
150 void Yaw(
double angle);
158 void Elevation(
double angle);
165 void Pitch(
double angle);
192 vtkBooleanMacro(UseHorizontalViewAngle,
vtkTypeBool);
207 void SetViewAngle(
double angle);
208 vtkGetMacro(ViewAngle,
double);
221 void SetParallelScale(
double scale);
222 vtkGetMacro(ParallelScale,
double);
232 void Zoom(
double factor);
248 void SetClippingRange(
double dNear,
double dFar);
250 vtkGetVector2Macro(ClippingRange,
double);
261 void SetThickness(
double);
262 vtkGetMacro(Thickness,
double);
275 void SetWindowCenter(
double x,
double y);
276 vtkGetVector2Macro(WindowCenter,
double);
292 void SetObliqueAngles(
double alpha,
double beta);
307 vtkGetVector3Macro(ViewPlaneNormal,
double);
319 void SetViewShear(
double dxdz,
double dydz,
double center);
320 void SetViewShear(
double d[3]);
321 vtkGetVector3Macro(ViewShear,
double);
329 vtkSetMacro(EyeAngle,
double);
330 vtkGetMacro(EyeAngle,
double);
340 vtkSetMacro(FocalDisk,
double);
341 vtkGetMacro(FocalDisk,
double);
353 vtkSetMacro(FocalDistance,
double);
354 vtkGetMacro(FocalDistance,
double);
369 vtkBooleanMacro(UseOffAxisProjection,
vtkTypeBool);
377 double GetOffAxisClippingAdjustment();
386 vtkSetVector3Macro(ScreenBottomLeft,
double);
387 vtkGetVector3Macro(ScreenBottomLeft,
double);
396 vtkSetVector3Macro(ScreenBottomRight,
double);
397 vtkGetVector3Macro(ScreenBottomRight,
double);
406 vtkSetVector3Macro(ScreenTopRight,
double);
407 vtkGetVector3Macro(ScreenTopRight,
double);
416 vtkSetMacro(EyeSeparation,
double);
417 vtkGetMacro(EyeSeparation,
double);
427 void SetEyePosition(
double eyePosition[3]);
428 void GetEyePosition(
double eyePosition[3]);
440 void GetStereoEyePosition(
double eyePosition[3]);
447 void GetEyePlaneNormal(
double normal[3]);
466 void SetEyeTransformMatrix(
const double elements[16]);
483 void SetModelTransformMatrix(
const double elements[16]);
521 virtual void SetExplicitProjectionTransformMatrix(
vtkMatrix4x4*);
522 vtkGetObjectMacro(ExplicitProjectionTransformMatrix,
vtkMatrix4x4);
530 vtkSetMacro(UseExplicitProjectionTransformMatrix,
bool);
531 vtkGetMacro(UseExplicitProjectionTransformMatrix,
bool);
532 vtkBooleanMacro(UseExplicitProjectionTransformMatrix,
bool);
540 vtkSetMacro(ExplicitAspectRatio,
double);
541 vtkGetMacro(ExplicitAspectRatio,
double);
550 vtkSetMacro(UseExplicitAspectRatio,
bool);
551 vtkGetMacro(UseExplicitAspectRatio,
bool);
552 vtkBooleanMacro(UseExplicitAspectRatio,
bool);
565 virtual vtkMatrix4x4* GetProjectionTransformMatrix(
double aspect,
double nearz,
double farz);
578 double aspect,
double nearz,
double farz);
591 virtual vtkMatrix4x4* GetCompositeProjectionTransformMatrix(
592 double aspect,
double nearz,
double farz);
639 void ViewingRaysModified();
651 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
664 virtual void UpdateIdealShiftScale(
double aspect);
665 vtkGetVector3Macro(FocalPointShift,
double);
666 vtkGetMacro(FocalPointScale,
double);
667 vtkGetVector3Macro(NearPlaneShift,
double);
668 vtkGetMacro(NearPlaneScale,
double);
669 vtkSetMacro(ShiftScaleThreshold,
double);
670 vtkGetMacro(ShiftScaleThreshold,
double);
685 void ComputeViewPlaneNormal();
703 vtkGetMacro(Stereo,
int);
710 vtkSetMacro(LeftEye,
int);
711 vtkGetMacro(LeftEye,
int);
736 vtkSetMacro(FreezeFocalPoint,
bool);
737 vtkGetMacro(FreezeFocalPoint,
bool);
744 vtkSetMacro(UseScissor,
bool);
745 vtkGetMacro(UseScissor,
bool);
752 void SetScissorRect(
vtkRecti scissorRect);
753 void GetScissorRect(
vtkRecti& scissorRect);
772 void ComputeDistance();
773 virtual void ComputeViewTransform();
779 virtual void ComputeProjectionTransform(
double aspect,
double nearz,
double farz);
784 void ComputeCompositeProjectionTransform(
double aspect,
double nearz,
double farz);
786 void ComputeCameraLightTransform();
792 void ComputeScreenOrientationMatrix();
797 void ComputeOffAxisProjectionFrustum();
802 void ComputeModelViewMatrix();
812 double WindowCenter[2];
813 double ObliqueAngles[2];
814 double FocalPoint[3];
818 double ClippingRange[2];
826 double DirectionOfProjection[3];
827 double ViewPlaneNormal[3];
833 double ScreenBottomLeft[3];
834 double ScreenBottomRight[3];
835 double ScreenTopRight[3];
836 double ScreenCenter[3];
865 double FocalPointShift[3];
867 double NearPlaneShift[3];
872 friend class vtkCameraCallbackCommand;
888 void operator=(
const vtkCamera&) =
delete;
891 VTK_ABI_NAMESPACE_END
vtkInformation * Information
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
struct Position_t Position
vtkMatrix4x4 * ProjectionPlaneOrientationMatrix
record modification and/or execution time
double ShiftScaleThreshold
abstract specification for renderers
void SetPosition(const double a[3])
Set/Get the position of the camera in world coordinates.
vtkTransform * ViewTransform
vtkTypeBool UseHorizontalViewAngle
vtkMatrix4x4 * ModelTransformMatrix
supports function callbacks
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.
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
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
double ExplicitAspectRatio
vtkPerspectiveTransform * Transform
vtkTypeBool ParallelProjection
vtkMatrix4x4 * EyeTransformMatrix
double OffAxisClippingAdjustment
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
bool UseExplicitAspectRatio