31 #ifndef vtkCameraOrientationRepresentation_h
32 #define vtkCameraOrientationRepresentation_h
34 #include "vtkInteractionWidgetsModule.h"
81 this->InteractionState =
82 this->InteractionState < 0 ? 0 : (this->InteractionState > 2 ? 2 : this->
InteractionState);
91 vtkSetVector2Macro(Size,
int);
92 vtkGetVector2Macro(Size,
int);
99 vtkSetVector2Macro(Padding,
int);
100 vtkGetVector2Macro(Padding,
int);
118 this->AnchorPosition = AnchorType::LowerLeft;
123 this->AnchorPosition = AnchorType::UpperLeft;
128 this->AnchorPosition = AnchorType::LowerRight;
133 this->AnchorPosition = AnchorType::UpperRight;
143 vtkSetMacro(TotalLength,
double);
144 vtkGetMacro(TotalLength,
double);
152 vtkSetMacro(NormalizedHandleDia,
double);
153 vtkGetMacro(NormalizedHandleDia,
double);
160 vtkGetMacro(Azimuth,
double);
161 vtkGetVector3Macro(Back,
double);
162 vtkGetMacro(Elevation,
double);
163 vtkGetVector3Macro(Up,
double);
170 vtkSetClampMacro(ShaftResolution,
int, 3, 256);
171 vtkGetMacro(ShaftResolution,
int);
178 vtkSetClampMacro(HandleCircumferentialResolution,
int, 3, 256);
179 vtkGetMacro(HandleCircumferentialResolution,
int);
186 vtkSetClampMacro(ContainerCircumferentialResolution,
int, 3, 256);
187 vtkGetMacro(ContainerCircumferentialResolution,
int);
194 vtkSetClampMacro(ContainerRadialResolution,
int, 3, 256);
195 vtkGetMacro(ContainerRadialResolution,
int);
202 vtkGetMacro(PickedAxis,
int);
203 vtkGetMacro(PickedDir,
int);
234 vtkBooleanMacro(ContainerVisibility,
bool);
281 bool IsAnyHandleSelected() {
return (this->PickedAxis != -1) && (this->PickedDir != -1); }
291 virtual void Rotate(
double newEventPos[2]);
324 int Padding[2] = { 10, 10 };
325 int Size[2] = { 120, 120 };
328 const char* AxisLabelsText[3][2] = { {
"X",
"-X" }, {
"Y",
"-Y" }, {
"Z",
"-Z" } };
330 double Back[3] = { 0., 0., -1. };
331 double Bounds[6] = {};
332 double Elevation = 0.;
333 double MotionFactor = 1.;
334 double NormalizedHandleDia = 0.4;
335 double TotalLength = 1.;
336 double Up[3] = { 0., 1., 0. };
337 int ContainerCircumferentialResolution = 32;
338 int ContainerRadialResolution = 1;
339 int HandleCircumferentialResolution = 32;
340 int ShaftResolution = 10;
344 int LastPickedAx = -1;
346 int LastPickedDir = -1;
349 double LastEventPosition[3] = {};
represents an object (geometry & properties) in a rendered scene
A 3D representation for vtkCameraOrientationWidget.
void StartWidgetInteraction(double eventPos[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkNew< vtkActor > Shafts
vtkTextProperty * GetXMinusLabelProperty()
Get the '-' axis label properties.
void AnchorToUpperRight()
Get/Set the widget anchor type.
~vtkCameraOrientationRepresentation() override
void PlaceWidget(double *) override
These are methods that satisfy vtkWidgetRepresentation's API.
virtual void HighlightHandle()
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
vtkNew< vtkActor > Container
void AnchorToLowerLeft()
Get/Set the widget anchor type.
vtkTextProperty * GetZMinusLabelProperty()
Get the '-' axis label properties.
double * GetBounds() override
These are methods that satisfy vtkWidgetRepresentation's API.
static vtkCameraOrientationRepresentation * New()
vtkNew< vtkPolyData > Skeleton
void AnchorToLowerRight()
Get/Set the widget anchor type.
vtkTransform * GetTransform()
Retrieve internal transform of this widget representation.
vtkProperty * GetContainerProperty()
Get the container property.
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
virtual void CreateDefaultProperties()
virtual void Rotate(double newEventPos[2])
vtkNew< vtkDoubleArray > AxesColors
void BuildRepresentation() override
These are methods that satisfy vtkWidgetRepresentation's API.
void WidgetInteraction(double newEventPos[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkCameraOrientationRepresentation()
vtkNew< vtkPropPicker > HandlePicker
vtkNew< vtkTubeFilter > ShaftGlyphs
vtkTextProperty * GetYPlusLabelProperty()
Get the '+' axis label properties.
AnchorType GetAnchorPosition()
Get/Set the widget anchor type.
bool GetContainerVisibility()
Show container to indicate mouse presence.
int ComputeInteractionState(int X, int Y, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkTextProperty * GetZPlusLabelProperty()
Get the '+' axis label properties.
void ApplyInteractionState(const InteractionStateType &state)
The interaction state may be set from a widget (e.g., vtkCameraOrientationWidget) or other object.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void FinalizeHandlePicks()
vtkTextProperty * GetXPlusLabelProperty()
Get the '+' axis label properties.
void EndWidgetInteraction(double newEventPos[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
void SetContainerVisibility(bool state)
Show container to indicate mouse presence.
InteractionStateType GetInteractionStateAsEnum() noexcept
Convenient method to get InteractionState as enum.
virtual void PositionHandles()
vtkNew< vtkTransform > Transform
vtkNew< vtkPoints > Points
vtkTextProperty * GetYMinusLabelProperty()
Get the '-' axis label properties.
void ApplyInteractionState(const int &state)
void AnchorToUpperLeft()
Get/Set the widget anchor type.
vtkNew< vtkDiskSource > ContainerSource
virtual void CreateDefaultGeometry()
create a disk with hole in center
dynamic, self-adjusting array of double
topologically and geometrically regular array of data
a simple class to control print indentation
virtual void Modified()
Update the modification time for this object.
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
pick an actor/prop using graphics hardware
abstract superclass for all actors, volumes and annotations
represent surface properties of a geometric object
represent text properties.
handles properties associated with a texture map
filter that generates tubes around lines
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_SIZEHINT(...)