32 #include "vtkRenderingCoreModule.h" 42 class vtkCameraCallbackCommand;
62 void SetPosition(
double x,
double y,
double z);
64 this->SetPosition(a[0], a[1], a[2]); };
65 vtkGetVector3Macro(Position,
double);
73 void SetFocalPoint(
double x,
double y,
double z);
75 this->SetFocalPoint(a[0], a[1], a[2]);};
76 vtkGetVector3Macro(FocalPoint,
double);
84 void SetViewUp(
double vx,
double vy,
double vz);
86 this->SetViewUp(a[0], a[1], a[2]); }
87 vtkGetVector3Macro(ViewUp,
double);
95 void OrthogonalizeViewUp();
101 void SetDistance(
double);
108 vtkGetMacro(Distance,
double);
117 vtkGetVector3Macro(DirectionOfProjection,
double);
126 void Dolly(
double value);
132 void SetRoll(
double angle);
140 void Roll(
double angle);
148 void Azimuth(
double angle);
157 void Yaw(
double angle);
165 void Elevation(
double angle);
172 void Pitch(
double angle);
199 vtkBooleanMacro(UseHorizontalViewAngle,
vtkTypeBool);
214 void SetViewAngle(
double angle);
215 vtkGetMacro(ViewAngle,
double);
228 void SetParallelScale(
double scale);
229 vtkGetMacro(ParallelScale ,
double);
239 void Zoom(
double factor);
255 void SetClippingRange(
double dNear,
double dFar);
257 { this->SetClippingRange(a[0], a[1]); }
258 vtkGetVector2Macro(ClippingRange,
double);
269 void SetThickness(
double);
270 vtkGetMacro(Thickness,
double);
283 void SetWindowCenter(
double x,
double y);
284 vtkGetVector2Macro(WindowCenter,
double);
300 void SetObliqueAngles(
double alpha,
double beta);
315 vtkGetVector3Macro(ViewPlaneNormal,
double);
327 void SetViewShear(
double dxdz,
double dydz,
double center);
328 void SetViewShear(
double d[3]);
329 vtkGetVector3Macro(ViewShear,
double);
337 vtkSetMacro(EyeAngle,
double);
338 vtkGetMacro(EyeAngle,
double);
348 vtkSetMacro(FocalDisk,
double);
349 vtkGetMacro(FocalDisk,
double);
364 vtkBooleanMacro(UseOffAxisProjection,
vtkTypeBool);
373 vtkSetVector3Macro(ScreenBottomLeft,
double);
374 vtkGetVector3Macro(ScreenBottomLeft,
double);
383 vtkSetVector3Macro(ScreenBottomRight,
double);
384 vtkGetVector3Macro(ScreenBottomRight,
double);
393 vtkSetVector3Macro(ScreenTopRight,
double);
394 vtkGetVector3Macro(ScreenTopRight,
double);
403 vtkSetMacro(EyeSeparation,
double);
404 vtkGetMacro(EyeSeparation,
double);
414 void SetEyePosition(
double eyePosition[3]);
415 void GetEyePosition(
double eyePosition[3]);
422 void GetEyePlaneNormal(
double normal[3]);
441 void SetEyeTransformMatrix(
const double elements[16]);
458 void SetModelTransformMatrix(
const double elements[16]);
496 virtual void SetExplicitProjectionTransformMatrix(
vtkMatrix4x4*);
497 vtkGetObjectMacro(ExplicitProjectionTransformMatrix,
vtkMatrix4x4)
505 vtkSetMacro(UseExplicitProjectionTransformMatrix,
bool)
506 vtkGetMacro(UseExplicitProjectionTransformMatrix,
bool)
507 vtkBooleanMacro(UseExplicitProjectionTransformMatrix,
bool)
519 virtual vtkMatrix4x4 *GetProjectionTransformMatrix(
double aspect,
546 virtual vtkMatrix4x4 *GetCompositeProjectionTransformMatrix(
double aspect,
595 void ViewingRaysModified();
606 virtual void GetFrustumPlanes(
double aspect,
double planes[24]);
620 void ComputeViewPlaneNormal();
638 vtkSetMacro(LeftEye,
int);
639 vtkGetMacro(LeftEye,
int);
664 vtkSetMacro(FreezeFocalPoint,
bool);
665 vtkGetMacro(FreezeFocalPoint,
bool);
672 vtkSetMacro(UseScissor,
bool);
673 vtkGetMacro(UseScissor,
bool);
680 void SetScissorRect(
vtkRecti scissorRect);
681 void GetScissorRect(
vtkRecti& scissorRect);
692 void ComputeDistance();
693 virtual void ComputeViewTransform();
699 virtual void ComputeProjectionTransform(
double aspect,
706 void ComputeCompositeProjectionTransform(
double aspect,
710 void ComputeCameraLightTransform();
717 void ComputeWorldToScreenMatrix();
722 void ComputeOffAxisProjectionFrustum();
727 void ComputeModelViewMatrix();
737 double WindowCenter[2];
738 double ObliqueAngles[2];
739 double FocalPoint[3];
743 double ClippingRange[2];
751 double DirectionOfProjection[3];
752 double ViewPlaneNormal[3];
758 double ScreenBottomLeft[3];
759 double ScreenBottomRight[3];
760 double ScreenTopRight[3];
787 friend class vtkCameraCallbackCommand;
801 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
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