40 #include "vtkRenderingCoreModule.h"
49 class vtkCameraCallbackCommand;
69 void SetPosition(
double x,
double y,
double z);
71 vtkGetVector3Macro(
Position,
double);
79 void SetFocalPoint(
double x,
double y,
double z);
81 vtkGetVector3Macro(FocalPoint,
double);
89 void SetViewUp(
double vx,
double vy,
double vz);
91 vtkGetVector3Macro(ViewUp,
double);
99 void OrthogonalizeViewUp();
105 void SetDistance(
double);
112 vtkGetMacro(Distance,
double);
121 vtkGetVector3Macro(DirectionOfProjection,
double);
130 void Dolly(
double value);
136 void SetRoll(
double angle);
144 void Roll(
double angle);
152 void Azimuth(
double angle);
161 void Yaw(
double angle);
169 void Elevation(
double angle);
176 void Pitch(
double angle);
203 vtkBooleanMacro(UseHorizontalViewAngle,
vtkTypeBool);
218 void SetViewAngle(
double angle);
219 vtkGetMacro(ViewAngle,
double);
232 void SetParallelScale(
double scale);
233 vtkGetMacro(ParallelScale,
double);
243 void Zoom(
double factor);
259 void SetClippingRange(
double dNear,
double dFar);
261 vtkGetVector2Macro(ClippingRange,
double);
272 void SetThickness(
double);
273 vtkGetMacro(Thickness,
double);
286 void SetWindowCenter(
double x,
double y);
287 vtkGetVector2Macro(WindowCenter,
double);
303 void SetObliqueAngles(
double alpha,
double beta);
318 vtkGetVector3Macro(ViewPlaneNormal,
double);
330 void SetViewShear(
double dxdz,
double dydz,
double center);
331 void SetViewShear(
double d[3]);
332 vtkGetVector3Macro(ViewShear,
double);
340 vtkSetMacro(EyeAngle,
double);
341 vtkGetMacro(EyeAngle,
double);
351 vtkSetMacro(FocalDisk,
double);
352 vtkGetMacro(FocalDisk,
double);
364 vtkSetMacro(FocalDistance,
double);
365 vtkGetMacro(FocalDistance,
double);
380 vtkBooleanMacro(UseOffAxisProjection,
vtkTypeBool);
389 vtkSetVector3Macro(ScreenBottomLeft,
double);
390 vtkGetVector3Macro(ScreenBottomLeft,
double);
399 vtkSetVector3Macro(ScreenBottomRight,
double);
400 vtkGetVector3Macro(ScreenBottomRight,
double);
409 vtkSetVector3Macro(ScreenTopRight,
double);
410 vtkGetVector3Macro(ScreenTopRight,
double);
419 vtkSetMacro(EyeSeparation,
double);
420 vtkGetMacro(EyeSeparation,
double);
430 void SetEyePosition(
double eyePosition[3]);
431 void GetEyePosition(
double eyePosition[3]);
438 void GetEyePlaneNormal(
double normal[3]);
457 void SetEyeTransformMatrix(
const double elements[16]);
474 void SetModelTransformMatrix(
const double elements[16]);
512 virtual void SetExplicitProjectionTransformMatrix(
vtkMatrix4x4*);
513 vtkGetObjectMacro(ExplicitProjectionTransformMatrix,
vtkMatrix4x4);
521 vtkSetMacro(UseExplicitProjectionTransformMatrix,
bool);
522 vtkGetMacro(UseExplicitProjectionTransformMatrix,
bool);
523 vtkBooleanMacro(UseExplicitProjectionTransformMatrix,
bool);
531 vtkSetMacro(ExplicitAspectRatio,
double);
532 vtkGetMacro(ExplicitAspectRatio,
double);
541 vtkSetMacro(UseExplicitAspectRatio,
bool);
542 vtkGetMacro(UseExplicitAspectRatio,
bool);
543 vtkBooleanMacro(UseExplicitAspectRatio,
bool);
556 virtual vtkMatrix4x4* GetProjectionTransformMatrix(
double aspect,
double nearz,
double farz);
569 double aspect,
double nearz,
double farz);
582 virtual vtkMatrix4x4* GetCompositeProjectionTransformMatrix(
583 double aspect,
double nearz,
double farz);
630 void ViewingRaysModified();
642 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
655 virtual void UpdateIdealShiftScale(
double aspect);
656 vtkGetVector3Macro(FocalPointShift,
double);
657 vtkGetMacro(FocalPointScale,
double);
658 vtkGetVector3Macro(NearPlaneShift,
double);
659 vtkGetMacro(NearPlaneScale,
double);
660 vtkSetMacro(ShiftScaleThreshold,
double);
661 vtkGetMacro(ShiftScaleThreshold,
double);
676 void ComputeViewPlaneNormal();
694 vtkGetMacro(Stereo,
int);
701 vtkSetMacro(LeftEye,
int);
702 vtkGetMacro(LeftEye,
int);
727 vtkSetMacro(FreezeFocalPoint,
bool);
728 vtkGetMacro(FreezeFocalPoint,
bool);
735 vtkSetMacro(UseScissor,
bool);
736 vtkGetMacro(UseScissor,
bool);
743 void SetScissorRect(
vtkRecti scissorRect);
744 void GetScissorRect(
vtkRecti& scissorRect);
763 void ComputeDistance();
764 virtual void ComputeViewTransform();
770 virtual void ComputeProjectionTransform(
double aspect,
double nearz,
double farz);
775 void ComputeCompositeProjectionTransform(
double aspect,
double nearz,
double farz);
777 void ComputeCameraLightTransform();
783 void ComputeWorldToScreenMatrix();
788 void ComputeOffAxisProjectionFrustum();
793 void ComputeModelViewMatrix();
803 double WindowCenter[2];
804 double ObliqueAngles[2];
805 double FocalPoint[3];
809 double ClippingRange[2];
817 double DirectionOfProjection[3];
818 double ViewPlaneNormal[3];
824 double ScreenBottomLeft[3];
825 double ScreenBottomRight[3];
826 double ScreenTopRight[3];
856 double FocalPointShift[3];
858 double NearPlaneShift[3];
863 friend class vtkCameraCallbackCommand;
879 void operator=(
const vtkCamera&) =
delete;
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
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
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
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
double ExplicitAspectRatio
vtkPerspectiveTransform * Transform
vtkTypeBool ParallelProjection
vtkMatrix4x4 * EyeTransformMatrix
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