19 #ifndef vtkCameraOrientationRepresentation_h
20 #define vtkCameraOrientationRepresentation_h
22 #include "vtkInteractionWidgetsModule.h"
25 VTK_ABI_NAMESPACE_BEGIN
59 void ApplyInteractionState(
const InteractionStateType& state);
60 void ApplyInteractionState(
const int& state);
70 this->InteractionState =
71 this->InteractionState < 0 ? 0 : (this->InteractionState > 2 ? 2 : this->
InteractionState);
80 vtkSetVector2Macro(Size,
int);
81 vtkGetVector2Macro(Size,
int);
88 vtkSetVector2Macro(Padding,
int);
89 vtkGetVector2Macro(Padding,
int);
107 this->AnchorPosition = AnchorType::LowerLeft;
112 this->AnchorPosition = AnchorType::UpperLeft;
117 this->AnchorPosition = AnchorType::LowerRight;
122 this->AnchorPosition = AnchorType::UpperRight;
132 vtkSetMacro(TotalLength,
double);
133 vtkGetMacro(TotalLength,
double);
141 vtkSetMacro(NormalizedHandleDia,
double);
142 vtkGetMacro(NormalizedHandleDia,
double);
149 vtkGetMacro(Azimuth,
double);
150 vtkGetVector3Macro(Back,
double);
151 vtkGetMacro(Elevation,
double);
152 vtkGetVector3Macro(Up,
double);
159 vtkSetClampMacro(ShaftResolution,
int, 3, 256);
160 vtkGetMacro(ShaftResolution,
int);
167 vtkSetClampMacro(HandleCircumferentialResolution,
int, 3, 256);
168 vtkGetMacro(HandleCircumferentialResolution,
int);
175 vtkSetClampMacro(ContainerCircumferentialResolution,
int, 3, 256);
176 vtkGetMacro(ContainerCircumferentialResolution,
int);
183 vtkSetClampMacro(ContainerRadialResolution,
int, 3, 256);
184 vtkGetMacro(ContainerRadialResolution,
int);
191 vtkGetMacro(PickedAxis,
int);
192 vtkGetMacro(PickedDir,
int);
222 void SetContainerVisibility(
bool state);
223 vtkBooleanMacro(ContainerVisibility,
bool);
224 bool GetContainerVisibility();
256 void ReleaseGraphicsResources(
vtkWindow*) override;
258 int RenderTranslucentPolygonalGeometry(
vtkViewport*) override;
259 vtkTypeBool HasTranslucentPolygonalGeometry() override;
265 void ShallowCopy(
vtkProp* prop) override;
270 bool IsAnyHandleSelected() {
return (this->PickedAxis != -1) && (this->PickedDir != -1); }
276 virtual void CreateDefaultGeometry();
277 virtual void CreateDefaultProperties();
278 virtual void PositionHandles();
279 virtual void HighlightHandle();
280 virtual void Rotate(
double newEventPos[2]);
282 void FinalizeHandlePicks();
313 int Padding[2] = { 10, 10 };
314 int Size[2] = { 120, 120 };
317 const char* AxisLabelsText[3][2] = { {
"X",
"-X" }, {
"Y",
"-Y" }, {
"Z",
"-Z" } };
319 double Back[3] = { 0., 0., -1. };
320 double Bounds[6] = {};
321 double Elevation = 0.;
322 double MotionFactor = 1.;
323 double NormalizedHandleDia = 0.4;
324 double TotalLength = 1.;
325 double Up[3] = { 0., 1., 0. };
326 int ContainerCircumferentialResolution = 32;
327 int ContainerRadialResolution = 1;
328 int HandleCircumferentialResolution = 32;
329 int ShaftResolution = 10;
333 int LastPickedAx = -1;
335 int LastPickedDir = -1;
338 double LastEventPosition[3] = {};
345 VTK_ABI_NAMESPACE_END
vtkNew< vtkDoubleArray > AxesColors
abstract superclass for all actors, volumes and annotations
represents an object (geometry & properties) in a rendered scene
pick an actor/prop using graphics hardware
abstract specification for Viewports
represent surface properties of a geometric object
vtkNew< vtkTubeFilter > ShaftGlyphs
vtkNew< vtkDiskSource > ContainerSource
vtkNew< vtkActor > Shafts
concrete dataset represents vertices, lines, polygons, and triangle strips
void PlaceWidget(double *) override
These are methods that satisfy vtkWidgetRepresentation's API.
void AnchorToLowerLeft()
Get/Set the widget anchor type.
vtkNew< vtkActor > Container
dynamic, self-adjusting array of double
window superclass for vtkRenderWindow
filter that generates tubes around lines
vtkNew< vtkPoints > Points
a simple class to control print indentation
vtkNew< vtkPropPicker > HandlePicker
topologically and geometrically regular array of data
handles properties associated with a texture map
virtual void Modified()
Update the modification time for this object.
#define VTK_SIZEHINT(...)
represent text properties.
AnchorType GetAnchorPosition()
Get/Set the widget anchor type.
void AnchorToUpperRight()
Get/Set the widget anchor type.
vtkNew< vtkPolyData > Skeleton
InteractionStateType GetInteractionStateAsEnum() noexcept
Convenient method to get InteractionState as enum.
create a disk with hole in center
vtkNew< vtkTransform > Transform
A 3D representation for vtkCameraOrientationWidget.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
represent and manipulate 3D points
void AnchorToLowerRight()
Get/Set the widget anchor type.
void AnchorToUpperLeft()
Get/Set the widget anchor type.