28 #include "vtkRenderingCoreModule.h"
31 VTK_ABI_NAMESPACE_BEGIN
39 class vtkCameraCallbackCommand;
59 void SetPosition(
double x,
double y,
double z);
61 vtkGetVector3Macro(
Position,
double);
69 void SetFocalPoint(
double x,
double y,
double z);
71 vtkGetVector3Macro(FocalPoint,
double);
79 void SetViewUp(
double vx,
double vy,
double vz);
81 vtkGetVector3Macro(ViewUp,
double);
89 void OrthogonalizeViewUp();
95 void SetDistance(
double);
102 vtkGetMacro(Distance,
double);
111 vtkGetVector3Macro(DirectionOfProjection,
double);
120 void Dolly(
double value);
126 void SetRoll(
double angle);
134 void Roll(
double angle);
142 void Azimuth(
double angle);
151 void Yaw(
double angle);
159 void Elevation(
double angle);
166 void Pitch(
double angle);
193 vtkBooleanMacro(UseHorizontalViewAngle,
vtkTypeBool);
208 void SetViewAngle(
double angle);
209 vtkGetMacro(ViewAngle,
double);
222 void SetParallelScale(
double scale);
223 vtkGetMacro(ParallelScale,
double);
233 void Zoom(
double factor);
249 void SetClippingRange(
double dNear,
double dFar);
251 vtkGetVector2Macro(ClippingRange,
double);
262 void SetThickness(
double);
263 vtkGetMacro(Thickness,
double);
276 void SetWindowCenter(
double x,
double y);
277 vtkGetVector2Macro(WindowCenter,
double);
293 void SetObliqueAngles(
double alpha,
double beta);
308 vtkGetVector3Macro(ViewPlaneNormal,
double);
320 void SetViewShear(
double dxdz,
double dydz,
double center);
321 void SetViewShear(
double d[3]);
322 vtkGetVector3Macro(ViewShear,
double);
330 vtkSetMacro(EyeAngle,
double);
331 vtkGetMacro(EyeAngle,
double);
341 vtkSetMacro(FocalDisk,
double);
342 vtkGetMacro(FocalDisk,
double);
354 vtkSetMacro(FocalDistance,
double);
355 vtkGetMacro(FocalDistance,
double);
370 vtkBooleanMacro(UseOffAxisProjection,
vtkTypeBool);
378 double GetOffAxisClippingAdjustment();
387 vtkSetVector3Macro(ScreenBottomLeft,
double);
388 vtkGetVector3Macro(ScreenBottomLeft,
double);
397 vtkSetVector3Macro(ScreenBottomRight,
double);
398 vtkGetVector3Macro(ScreenBottomRight,
double);
407 vtkSetVector3Macro(ScreenTopRight,
double);
408 vtkGetVector3Macro(ScreenTopRight,
double);
417 vtkSetMacro(EyeSeparation,
double);
418 vtkGetMacro(EyeSeparation,
double);
428 void SetEyePosition(
double eyePosition[3]);
429 void GetEyePosition(
double eyePosition[3]);
441 void GetStereoEyePosition(
double eyePosition[3]);
448 void GetEyePlaneNormal(
double normal[3]);
458 void SetEyeTransformMatrix(
const double elements[16]);
469 void SetModelTransformMatrix(
const double elements[16]);
509 virtual void SetExplicitProjectionTransformMatrix(
vtkMatrix4x4*);
510 vtkGetObjectMacro(ExplicitProjectionTransformMatrix,
vtkMatrix4x4);
518 vtkSetMacro(UseExplicitProjectionTransformMatrix,
bool);
519 vtkGetMacro(UseExplicitProjectionTransformMatrix,
bool);
520 vtkBooleanMacro(UseExplicitProjectionTransformMatrix,
bool);
528 vtkSetMacro(ExplicitAspectRatio,
double);
529 vtkGetMacro(ExplicitAspectRatio,
double);
538 vtkSetMacro(UseExplicitAspectRatio,
bool);
539 vtkGetMacro(UseExplicitAspectRatio,
bool);
540 vtkBooleanMacro(UseExplicitAspectRatio,
bool);
553 virtual vtkMatrix4x4* GetProjectionTransformMatrix(
double aspect,
double nearz,
double farz);
566 double aspect,
double nearz,
double farz);
579 virtual vtkMatrix4x4* GetCompositeProjectionTransformMatrix(
580 double aspect,
double nearz,
double farz);
627 void ViewingRaysModified();
639 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
652 virtual void UpdateIdealShiftScale(
double aspect);
653 vtkGetVector3Macro(FocalPointShift,
double);
654 vtkGetMacro(FocalPointScale,
double);
655 vtkGetVector3Macro(NearPlaneShift,
double);
656 vtkGetMacro(NearPlaneScale,
double);
657 vtkSetMacro(ShiftScaleThreshold,
double);
658 vtkGetMacro(ShiftScaleThreshold,
double);
673 void ComputeViewPlaneNormal();
691 vtkGetMacro(Stereo,
int);
698 vtkSetMacro(LeftEye,
int);
699 vtkGetMacro(LeftEye,
int);
724 vtkSetMacro(FreezeFocalPoint,
bool);
725 vtkGetMacro(FreezeFocalPoint,
bool);
732 vtkSetMacro(UseScissor,
bool);
733 vtkGetMacro(UseScissor,
bool);
740 void SetScissorRect(
vtkRecti scissorRect);
741 void GetScissorRect(
vtkRecti& scissorRect);
760 void ComputeDistance();
761 virtual void ComputeViewTransform();
767 virtual void ComputeProjectionTransform(
double aspect,
double nearz,
double farz);
772 void ComputeCompositeProjectionTransform(
double aspect,
double nearz,
double farz);
774 void ComputeCameraLightTransform();
780 void ComputeScreenOrientationMatrix();
785 void ComputeOffAxisProjectionFrustum();
790 void ComputeModelViewMatrix();
800 double WindowCenter[2];
801 double ObliqueAngles[2];
802 double FocalPoint[3];
806 double ClippingRange[2];
814 double DirectionOfProjection[3];
815 double ViewPlaneNormal[3];
821 double ScreenBottomLeft[3];
822 double ScreenBottomRight[3];
823 double ScreenTopRight[3];
824 double ScreenCenter[3];
853 double FocalPointShift[3];
855 double NearPlaneShift[3];
860 friend class vtkCameraCallbackCommand;
876 void operator=(
const vtkCamera&) =
delete;
879 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