38#ifndef vtkCameraOrientationRepresentation_h
39#define vtkCameraOrientationRepresentation_h
41#include "vtkInteractionWidgetsModule.h"
47VTK_ABI_NAMESPACE_BEGIN
92 this->InteractionState = std::min(std::max(this->InteractionState, 0), 2);
101 vtkSetVector2Macro(Size,
int);
102 vtkGetVector2Macro(Size,
int);
109 vtkSetVector2Macro(Padding,
int);
110 vtkGetVector2Macro(Padding,
int);
129 this->AnchorPosition = AnchorType::LowerLeft;
134 this->AnchorPosition = AnchorType::UpperLeft;
139 this->AnchorPosition = AnchorType::LowerRight;
144 this->AnchorPosition = AnchorType::UpperRight;
154 vtkSetMacro(TotalLength,
double);
155 vtkGetMacro(TotalLength,
double);
163 vtkSetMacro(NormalizedHandleDia,
double);
164 vtkGetMacro(NormalizedHandleDia,
double);
171 vtkGetMacro(Azimuth,
double);
172 vtkGetVector3Macro(Back,
double);
173 vtkGetMacro(Elevation,
double);
174 vtkGetVector3Macro(Up,
double);
181 vtkSetClampMacro(ShaftResolution,
int, 3, 256);
182 vtkGetMacro(ShaftResolution,
int);
189 vtkSetClampMacro(HandleCircumferentialResolution,
int, 3, 256);
190 vtkGetMacro(HandleCircumferentialResolution,
int);
197 vtkSetClampMacro(ContainerCircumferentialResolution,
int, 3, 256);
198 vtkGetMacro(ContainerCircumferentialResolution,
int);
205 vtkSetClampMacro(ContainerRadialResolution,
int, 3, 256);
206 vtkGetMacro(ContainerRadialResolution,
int);
213 vtkGetMacro(PickedAxis,
int);
214 vtkGetMacro(PickedDir,
int);
223 this->AxisLabelsText[0][0] = label;
229 this->AxisLabelsText[1][0] = label;
235 this->AxisLabelsText[2][0] = label;
247 this->AxisLabelsText[0][1] = label;
253 this->AxisLabelsText[1][1] = label;
259 this->AxisLabelsText[2][1] = label;
320 void GetXAxisColor(
double color[3]);
328 void GetYAxisColor(
double color[3]);
336 void GetZAxisColor(
double color[3]);
344 void GetAxisColor(
int ax,
double color[3]);
356 void SetContainerVisibility(
bool state);
357 vtkBooleanMacro(ContainerVisibility,
bool);
358 bool GetContainerVisibility();
377 void PlaceWidget(
double*)
override {}
404 bool IsAnyHandleSelected() {
return (this->PickedAxis != -1) && (this->PickedDir != -1); }
414 virtual void Rotate(
double newEventPos[2]);
447 int Padding[2] = { 10, 10 };
448 int Size[2] = { 120, 120 };
451 std::string AxisLabelsText[3][2] = { {
"X",
"-X" }, {
"Y",
"-Y" }, {
"Z",
"-Z" } };
453 double Back[3] = { 0., 0., -1. };
454 double Bounds[6] = {};
455 double Elevation = 0.;
456 double MotionFactor = 1.;
457 double NormalizedHandleDia = 0.4;
458 double TotalLength = 1.;
459 double Up[3] = { 0., 1., 0. };
460 int ContainerCircumferentialResolution = 32;
461 int ContainerRadialResolution = 1;
462 int HandleCircumferentialResolution = 32;
463 int ShaftResolution = 10;
467 int LastPickedAx = -1;
469 int LastPickedDir = -1;
472 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 * GetXPlusLabelProperty()
Get the '+' axis label properties.
void AnchorToUpperRight()
Get/Set the widget anchor type.
~vtkCameraOrientationRepresentation() override
virtual void HighlightHandle()
void SetZAxisColor(double, double, double)
Set the Z axis color.
void SetYAxisColor(double color[3])
Set the Y axis color.
vtkTextProperty * GetXMinusLabelProperty()
Get the '-' axis label properties.
std::string GetYPlusLabelText()
Set/Get the '+' axis label text.
void SetZPlusLabelText(const std::string &label)
Set/Get the '+' axis label text.
void SetYMinusLabelText(const std::string &label)
Set/Get the '-' axis label text.
vtkNew< vtkActor > Container
void AnchorToLowerLeft()
Get/Set the widget anchor type.
std::string GetZMinusLabelText()
Set/Get the '-' axis label text.
std::string GetXMinusLabelText()
Set/Get the '-' axis label text.
vtkTextProperty * GetZMinusLabelProperty()
Get the '-' axis label properties.
vtkNew< vtkPolyData > Skeleton
void AnchorToLowerRight()
Get/Set the widget anchor type.
vtkTextProperty * GetYMinusLabelProperty()
Get the '-' axis label properties.
void SetAxisColor(int ax, double, double, double)
Set the axis color for the axis ax.
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
virtual void CreateDefaultProperties()
vtkTextProperty * GetZPlusLabelProperty()
Get the '+' axis label properties.
virtual void Rotate(double newEventPos[2])
std::string GetZPlusLabelText()
Set/Get the '+' axis label text.
vtkNew< vtkDoubleArray > AxesColors
double * GetXAxisColor()
Get the X axis color.
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()
std::string GetXPlusLabelText()
Set/Get the '+' axis label text.
vtkNew< vtkPropPicker > HandlePicker
void SetAxisColor(int ax, double color[3])
Set the axis color for the axis ax.
vtkNew< vtkTubeFilter > ShaftGlyphs
vtkSetEnumMacro(AnchorPosition, AnchorType)
Get/Set the widget anchor type.
vtkGetEnumMacro(AnchorPosition, AnchorType)
Get/Set the widget anchor type.
void SetZMinusLabelText(const std::string &label)
Set/Get the '-' axis label text.
int ComputeInteractionState(int X, int Y, int modify=0) override
These are methods that satisfy vtkWidgetRepresentation's API.
void SetXPlusLabelText(const std::string &label)
Set/Get the '+' axis label text.
void ApplyInteractionState(const InteractionStateType &state)
The interaction state may be set from a widget (e.g., vtkCameraOrientationWidget) or other object.
void SetYPlusLabelText(const std::string &label)
Set/Get the '+' axis label text.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::string GetYMinusLabelText()
Set/Get the '-' axis label text.
void FinalizeHandlePicks()
static vtkCameraOrientationRepresentation * New()
void EndWidgetInteraction(double newEventPos[2]) override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkTextProperty * GetYPlusLabelProperty()
Get the '+' axis label properties.
InteractionStateType GetInteractionStateAsEnum() noexcept
Convenient method to get InteractionState as enum.
void SetYAxisColor(double, double, double)
Set the Y axis color.
void SetXAxisColor(double color[3])
Set the X axis color.
virtual void PositionHandles()
vtkNew< vtkTransform > Transform
void SetXAxisColor(double, double, double)
Set the X axis color.
double * GetBounds() override
These are methods that satisfy vtkWidgetRepresentation's API.
vtkNew< vtkPoints > Points
void SetZAxisColor(double color[3])
Set the Z axis color.
void ApplyInteractionState(const int &state)
void AnchorToUpperLeft()
Get/Set the widget anchor type.
vtkNew< vtkDiskSource > ContainerSource
virtual void CreateDefaultGeometry()
void SetXMinusLabelText(const std::string &label)
Set/Get the '-' axis label text.
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
Allocate and hold a VTK object.
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(...)