24 #ifndef vtkCamera3DRepresentation_h
25 #define vtkCamera3DRepresentation_h
27 #include "vtkInteractionWidgetsModule.h"
34 VTK_ABI_NAMESPACE_BEGIN
78 void ReleaseGraphicsResources(
vtkWindow*) override;
80 int RenderTranslucentPolygonalGeometry(
vtkViewport*) override;
81 vtkTypeBool HasTranslucentPolygonalGeometry() override;
88 virtual
void SetCamera(
vtkCamera* camera);
98 vtkSetClampMacro(FrontHandleDistance,
double, 1.5,
VTK_DOUBLE_MAX);
99 vtkGetMacro(FrontHandleDistance,
double);
108 vtkSetClampMacro(UpHandleDistance,
double, 0.5, VTK_DOUBLE_MAX);
109 vtkGetMacro(UpHandleDistance,
double);
117 void SetTranslationAxisToXAxis() { this->SetTranslationAxis(Axis::XAxis); }
121 vtkSetClampMacro(TranslationAxis,
int,
Axis::NONE, Axis::ZAxis);
122 vtkGetMacro(TranslationAxis,
int);
130 vtkSetMacro(TranslatingAll,
bool);
131 vtkGetMacro(TranslatingAll,
bool);
132 vtkBooleanMacro(TranslatingAll,
bool);
140 void SetFrustumVisibility(
bool visible);
141 vtkGetMacro(FrustumVisibility,
bool);
142 vtkBooleanMacro(FrustumVisibility,
bool);
150 void SetSecondaryHandlesVisibility(
bool visible);
151 vtkGetMacro(SecondaryHandlesVisibility,
bool);
152 vtkBooleanMacro(SecondaryHandlesVisibility,
bool);
164 void SetInteractionState(
int state);
194 virtual void CreateDefaultProperties();
195 virtual void UpdateGeometry();
196 void HighlightHandle(
vtkProp* prop);
199 virtual void TranslateAll(
const double p1[4],
const double p2[4]);
200 virtual void TranslatePosition(
const double p1[4],
const double p2[4]);
201 virtual void TranslateTarget(
const double p1[4],
const double p2[4]);
202 virtual void TranslateNearTarget(
const double p1[4],
const double p2[4]);
203 virtual void TranslateUp(
const double p1[4],
const double p2[4]);
204 virtual void Scale(
const double p1[4],
const double p2[4],
int X,
int Y);
205 void GetTranslation(
const double p1[4],
const double p2[4],
double v[3]);
208 double LastEventPosition[3] = { 0.0 };
209 double LastEventOrientation[4] = { 0.0 };
210 double StartEventOrientation[4] = { 0.0 };
222 double FrontHandleDistance = 2.5;
223 double UpHandleDistance = 1.5;
242 bool TranslatingAll =
false;
243 bool FrustumVisibility =
true;
244 bool SecondaryHandlesVisibility =
true;
251 VTK_ABI_NAMESPACE_END
abstract superclass for all actors, volumes and annotations
represents an object (geometry & properties) in a rendered scene
vtkNew< vtkProperty > SelectedHandleProperty
void SetTranslationAxisToYAxis()
Set/Get the constraint axis for translations.
abstract specification for Viewports
represent surface properties of a geometric object
std::array< vtkNew< vtkSphereSource >, 3 > HandleSphereGeometry
vtkNew< vtkActor > CameraBoxActor
vtkNew< vtkProperty > HandleProperty
a frustum to represent a camera.
window superclass for vtkRenderWindow
create a polygonal sphere centered at the origin
a simple class to control print indentation
vtkNew< vtkCellPicker > HandlePicker
a virtual camera for 3D rendering
void SetTranslationAxisToNone()
Set/Get the constraint axis for translations.
void SetTranslationAxisToZAxis()
Set/Get the constraint axis for translations.
#define VTK_SIZEHINT(...)
vtkNew< vtkCameraActor > CameraFrustumActor
vtkNew< vtkBox > BoundingBox
create a line defined by two end points
vtkNew< vtkTransform > FrontTransform
std::array< vtkNew< vtkLineSource >, 2 > HandleLineGeometry
ray-cast cell picker for all kinds of Prop3Ds
std::array< vtkNew< vtkActor >, 3 > HandleSphereActor
vtkNew< vtkActor > CameraConeActor
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
implicit function for a bounding box
vtkNew< vtkTransform > CameraTransform
a class defining the representation for the vtkCamera3DWidget
std::array< vtkNew< vtkActor >, 2 > HandleLineActor
vtkNew< vtkTransform > UpTransform
vtkSmartPointer< vtkCamera > Camera