38#include "vtkRenderingCoreModule.h"
48class vtkCameraCallbackCommand;
70 this->SetPosition(a[0], a[1], a[2]); };
71 vtkGetVector3Macro(Position,
double);
81 this->SetFocalPoint(a[0], a[1], a[2]);};
82 vtkGetVector3Macro(FocalPoint,
double);
92 this->SetViewUp(a[0], a[1], a[2]); }
93 vtkGetVector3Macro(ViewUp,
double);
114 vtkGetMacro(Distance,
double);
123 vtkGetVector3Macro(DirectionOfProjection,
double);
186 vtkGetMacro(ParallelProjection,
int);
200 vtkGetMacro(UseHorizontalViewAngle,
int);
215 vtkGetMacro(ViewAngle,
double);
227 vtkGetMacro(ParallelScale ,
double);
251 { this->SetClippingRange(a[0], a[1]); }
252 vtkGetVector2Macro(ClippingRange,
double);
262 vtkGetMacro(Thickness,
double);
274 vtkGetVector2Macro(WindowCenter,
double);
303 vtkGetVector3Macro(ViewPlaneNormal,
double);
315 vtkGetVector3Macro(ViewShear,
double);
324 vtkGetMacro(EyeAngle,
double);
335 vtkGetMacro(FocalDisk,
double);
347 vtkGetMacro(UseOffAxisProjection,
int);
357 vtkSetVector3Macro(ScreenBottomLeft,
double);
358 vtkGetVector3Macro(ScreenBottomLeft,
double);
367 vtkSetVector3Macro(ScreenBottomRight,
double);
368 vtkGetVector3Macro(ScreenBottomRight,
double);
377 vtkSetVector3Macro(ScreenTopRight,
double);
378 vtkGetVector3Macro(ScreenTopRight,
double);
388 vtkGetMacro(EyeSeparation,
double);
599 vtkGetMacro(LeftEye,
int);
625 vtkGetMacro(FreezeFocalPoint,
bool);
633 vtkGetMacro(UseScissor,
bool);
697 double WindowCenter[2];
698 double ObliqueAngles[2];
699 double FocalPoint[3];
703 double ClippingRange[2];
711 double DirectionOfProjection[3];
712 double ViewPlaneNormal[3];
718 double ScreenBottomLeft[3];
719 double ScreenBottomRight[3];
720 double ScreenTopRight[3];
744 friend class vtkCameraCallbackCommand;
758 void operator=(
const vtkCamera&) VTK_DELETE_FUNCTION;
supports function callbacks
a virtual camera for 3D rendering
void ComputeOffAxisProjectionFrustum()
Compute and use frustum using offaxis method.
vtkMatrix4x4 * EyeTransformMatrix
void Roll(double angle)
Rotate the camera about the direction of projection.
virtual vtkMatrix4x4 * GetViewTransformMatrix()
For backward compatibility.
void ApplyTransform(vtkTransform *t)
Apply a transform to the camera.
void SetModelTransformMatrix(vtkMatrix4x4 *matrix)
Set/Get model transformation matrix.
double * GetOrientation()
Get the orientation of the camera.
vtkPerspectiveTransform * Transform
void ComputeCameraLightTransform()
void SetViewUp(const double a[3])
vtkTransform * ViewTransform
void SetUserTransform(vtkHomogeneousTransform *transform)
In addition to the instance variables such as position and orientation, you can add an additional tra...
virtual void ComputeViewTransform()
void SetEyePosition(double eyePosition[3])
Set/Get the eye position (center point between two eyes).
void SetPosition(const double a[3])
void Yaw(double angle)
Rotate the focal point about the view up vector, using the camera's position as the center of rotatio...
void SetRoll(double angle)
Set the roll angle of the camera about the direction of projection.
void PartialCopy(vtkCamera *source)
Copy the ivars.
void Elevation(double angle)
Rotate the camera about the cross product of the negative of the direction of projection and the view...
void Azimuth(double angle)
Rotate the camera about the view up vector centered at the focal point.
vtkHomogeneousTransform * UserTransform
void DeepCopy(vtkCamera *source)
Copy the properties of ‘source’ into ‘this’.
void Pitch(double angle)
Rotate the focal point about the cross product of the view up vector and the direction of projection,...
double * GetOrientationWXYZ()
void SetObliqueAngles(double alpha, double beta)
Get/Set the oblique viewing angles.
virtual vtkMatrix4x4 * GetProjectionTransformMatrix(vtkRenderer *ren)
Return the projection transform matrix, which converts from camera coordinates to viewport coordinate...
void ComputeModelViewMatrix()
Compute model view matrix for the camera.
virtual void GetFrustumPlanes(double aspect, double planes[24])
Get the plane equations that bound the view frustum.
void Zoom(double factor)
In perspective mode, decrease the view angle by the specified factor.
void SetPosition(double x, double y, double z)
Set/Get the position of the camera in world coordinates.
void SetViewUp(double vx, double vy, double vz)
Set/Get the view up direction for the camera.
vtkMatrix4x4 * ModelTransformMatrix
void ShallowCopy(vtkCamera *source)
Copy the properties of ‘source’ into ‘this’.
void ComputeViewPlaneNormal()
This method is called automatically whenever necessary, it should never be used outside of vtkCamera....
void SetModelTransformMatrix(const double elements[16])
Set model transformation matrix.
void SetClippingRange(double dNear, double dFar)
Set/Get the location of the near and far clipping planes along the direction of projection.
virtual vtkMatrix4x4 * GetModelViewTransformMatrix()
Return the model view matrix of model view transform.
void SetThickness(double)
Set the distance between clipping planes.
void GetScissorRect(vtkRecti &scissorRect)
virtual void Render(vtkRenderer *)
This method causes the camera to set up whatever is required for viewing the scene.
void ViewingRaysModified()
Mark that something has changed which requires the view rays to be recomputed.
static vtkCamera * New()
Construct camera instance with its focal point at the origin, and position=(0,0,1).
void SetFocalPoint(const double a[3])
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void SetEyeTransformMatrix(vtkMatrix4x4 *matrix)
Set/Get eye transformation matrix.
int UseHorizontalViewAngle
void GetEyePosition(double eyePosition[3])
void SetDistance(double)
Move the focal point so that it is the specified distance from the camera position.
virtual vtkPerspectiveTransform * GetProjectionTransformObject(double aspect, double nearz, double farz)
Return the projection transform matrix, which converts from camera coordinates to viewport coordinate...
void SetWindowCenter(double x, double y)
Set/Get the center of the window in viewport coordinates.
void SetEyeTransformMatrix(const double elements[16])
Set the eye transform matrix.
void SetScissorRect(vtkRecti scissorRect)
Set/Get the vtkRect value of the scissor.
virtual vtkMatrix4x4 * GetCompositeProjectionTransformMatrix(double aspect, double nearz, double farz)
Return the concatenation of the ViewTransform and the ProjectionTransform.
void ComputeCompositeProjectionTransform(double aspect, double nearz, double farz)
These methods should only be used within vtkCamera.cxx.
vtkMatrix4x4 * GetCameraLightTransformMatrix()
Returns a transformation matrix for a coordinate frame attached to the camera, where the camera is lo...
vtkMatrix4x4 * WorldToScreenMatrix
vtkTransform * CameraLightTransform
void SetViewAngle(double angle)
Set/Get the camera view angle, which is the angular height of the camera view measured in degrees.
void GetEyePlaneNormal(double normal[3])
Get normal vector from eye to screen rotated by EyeTransformMatrix.
void ComputeWorldToScreenMatrix()
Given screen screen top, bottom left and top right calculate screen rotation.
void OrthogonalizeViewUp()
Recompute the ViewUp vector to force it to be perpendicular to camera->focalpoint vector.
vtkTimeStamp WorldToScreenMatrixMTime
void Dolly(double value)
Divide the camera's distance from the focal point by the given dolly value.
vtkMTimeType GetViewingRaysMTime()
Return the MTime that concerns recomputing the view rays of the camera.
void SetFocalPoint(double x, double y, double z)
Set/Get the focal of the camera in world coordinates.
void SetParallelScale(double scale)
Set/Get the scaling used for a parallel projection, i.e.
virtual vtkTransform * GetViewTransformObject()
For backward compatibility.
void SetViewShear(double d[3])
vtkHomogeneousTransform * UserViewTransform
vtkPerspectiveTransform * ProjectionTransform
vtkCameraCallbackCommand * UserViewTransformCallbackCommand
virtual void UpdateViewport(vtkRenderer *vtkNotUsed(ren))
Update the viewport.
virtual vtkTransform * GetModelViewTransformObject()
Return the model view transform.
virtual void ComputeProjectionTransform(double aspect, double nearz, double farz)
These methods should only be used within vtkCamera.cxx.
virtual vtkMatrix4x4 * GetProjectionTransformMatrix(double aspect, double nearz, double farz)
Return the projection transform matrix, which converts from camera coordinates to viewport coordinate...
void SetParallelProjection(int flag)
Set/Get the value of the ParallelProjection instance variable.
void SetUserViewTransform(vtkHomogeneousTransform *transform)
In addition to the instance variables such as position and orientation, you can add an additional tra...
void ComputeDistance()
These methods should only be used within vtkCamera.cxx.
void SetUseHorizontalViewAngle(int flag)
Set/Get the value of the UseHorizontalViewAngle instance variable.
void SetViewShear(double dxdz, double dydz, double center)
Set/get the shear transform of the viewing frustum.
vtkTransform * ModelViewTransform
void SetClippingRange(const double a[2])
vtkTimeStamp ViewingRaysMTime
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
abstract base class for most VTK objects
abstract specification for renderers
record modification and/or execution time
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkTypeUInt64 vtkMTimeType