23#ifndef vtkCoordinateFrameRepresentation_h
24#define vtkCoordinateFrameRepresentation_h
26#include "vtkInteractionWidgetsModule.h"
31VTK_ABI_NAMESPACE_BEGIN
70 vtkGetVector3Macro(Origin,
double);
88 vtkGetVector3Macro(XVectorNormal,
double);
89 vtkGetVector3Macro(YVectorNormal,
double);
90 vtkGetVector3Macro(ZVectorNormal,
double);
257 vtkGetMacro(PickCameraFocalInfo,
bool);
258 vtkSetMacro(PickCameraFocalInfo,
bool);
259 vtkBooleanMacro(PickCameraFocalInfo,
bool);
344 ModifyingLockerZVector
357 vtkSetClampMacro(InteractionState,
int, Outside, ModifyingLockerZVector);
366 vtkGetMacro(RepresentationState,
int);
374 vtkSetClampMacro(LengthFactor,
double, 0, 1);
375 vtkGetMacro(LengthFactor,
double);
382 int RepresentationState = Outside;
385 double LastEventPosition[3];
387 bool PickCameraFocalInfo =
false;
394 double Origin[3] = { 0, 0, 0 };
395 double XVectorNormal[3] = { 1, 0, 0 };
396 double YVectorNormal[3] = { 0, 1, 0 };
397 double ZVectorNormal[3] = { 0, 0, 1 };
398 vtkSetVector3Macro(XVectorNormal,
double);
399 vtkSetVector3Macro(YVectorNormal,
double);
400 vtkSetVector3Macro(ZVectorNormal,
double);
418 bool XVectorIsLocked =
false;
434 bool YVectorIsLocked =
false;
450 bool ZVectorIsLocked =
false;
469 void Rotate(
double X,
double Y,
double* p1,
double* p2,
double* vpn);
502 double LengthFactor = 0.04;
represents an object (geometry & properties) in a rendered scene
implicit function for a bounding box
ray-cast cell picker for all kinds of Prop3Ds
a class defining the representation for a vtkCoordinateFrameWidget
int ComputeInteractionState(int X, int Y, int modify=0) override
Methods to interface with the vtkCoordinateFrameWidget.
vtkNew< vtkProperty > ZVectorProperty
virtual void SetLockNormalToCamera(vtkTypeBool)
If enabled, and a vtkCamera is available through the renderer, then LockNormalToCamera will cause the...
vtkNew< vtkConeSource > LockerXVectorConeSource
bool PickNormal(int X, int Y, bool snapToMeshPoint=false)
Given the X, Y display coordinates, pick a new normal for the coordinate frame from a point that is o...
vtkNew< vtkProperty > XVectorProperty
void SetXAxisVector(double x, double y, double z)
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
void EndWidgetInteraction(double newEventPos[2]) override
Methods to interface with the vtkCoordinateFrameWidget.
vtkNew< vtkProperty > SelectedLockedXVectorProperty
void SetNormalToCamera()
Set/Get the normal of one of the axes of the coordinate frame.
vtkNew< vtkProperty > UnlockedXVectorProperty
vtkNew< vtkPolyDataMapper > ZVectorLineMapper
vtkNew< vtkActor > YVectorLineActor
void SetXTranslationAxisOn()
Toggles constraint translation axis on/off.
vtkNew< vtkActor > YVectorConeActor
vtkNew< vtkBox > BoundingBox
vtkNew< vtkPolyDataMapper > LockerXVectorConeMapper
vtkNew< vtkPolyDataMapper > ZVectorConeMapper
void HighlightXVector(int highlight)
vtkNew< vtkActor > ZVectorLineActor
void ComputeAdaptivePickerTolerance()
vtkNew< vtkGenericCell > Cell
vtkNew< vtkProperty > UnlockedYVectorProperty
~vtkCoordinateFrameRepresentation() override
vtkNew< vtkProperty > OriginProperty
vtkNew< vtkProperty > SelectedUnlockedZVectorProperty
void BuildRepresentation() override
Methods to interface with the vtkCoordinateFrameWidget.
vtkNew< vtkProperty > SelectedYVectorProperty
vtkNew< vtkProperty > SelectedLockedZVectorProperty
vtkNew< vtkCellPicker > CellPicker
void Reset()
Reset the origin (by calling update placement) and the axes (to be aligned with the world coordinate ...
void TranslateOrigin(double *p1, double *p2)
vtkNew< vtkProperty > UnlockedZVectorProperty
void ResetAxes()
Reset only the axis orientations (not the origin).
vtkNew< vtkProperty > YVectorProperty
vtkNew< vtkProperty > LockedXVectorProperty
vtkNew< vtkTransform > Transform
vtkNew< vtkLineSource > YVectorLineSource
vtkNew< vtkPolyDataMapper > XVectorConeMapper
void SetOrigin(double x[3])
Set/Get the origin of the coordinate frame.
vtkNew< vtkActor > ZVectorConeActor
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
vtkNew< vtkActor > LockerYVectorConeActor
vtkNew< vtkPolyDataMapper > XVectorLineMapper
void SetOrigin(double x, double y, double z)
Set/Get the origin of the coordinate frame.
vtkNew< vtkConeSource > XVectorConeSource
vtkNew< vtkProperty > LockedZVectorProperty
void HighlightLockerXVector(int highlight)
virtual void CreateDefaultProperties()
vtkNew< vtkActor > OriginSphereActor
void SetLockedAxis(int axis)
int GetLockedAxis() const
Get/set which axis (if any) is locked.
void PlaceWidget(double bounds[6]) override
Methods to interface with the vtkCoordinateFrameWidget.
vtkNew< vtkPolyDataMapper > YVectorConeMapper
vtkNew< vtkProperty > LockedYVectorProperty
double * GetBounds() override
Methods supporting the rendering process.
void SetZAxisVector(double x, double y, double z)
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
vtkNew< vtkConeSource > YVectorConeSource
vtkNew< vtkConeSource > ZVectorConeSource
bool IsTranslationConstrained()
Returns true if ConstrainedAxis.
vtkNew< vtkProperty > SelectedOriginProperty
void HighlightZVector(int highlight)
vtkNew< vtkConeSource > LockerYVectorConeSource
static vtkCoordinateFrameRepresentation * New()
Instantiate the class.
void HighlightOrigin(int highlight)
vtkNew< vtkLineSource > XVectorLineSource
void UpdatePlacement()
Satisfies the superclass API.
vtkNew< vtkPolyDataMapper > YVectorLineMapper
void SetDirection(double x, double y, double z)
Set the direction of the locked (or absent a locked axis, the nearest axis) to point from the frame's...
vtkNew< vtkActor > XVectorConeActor
vtkCoordinateFrameRepresentation()
vtkNew< vtkProperty > SelectedUnlockedXVectorProperty
void SetTranslationAxisOff()
Toggles constraint translation axis on/off.
vtkNew< vtkSphereSource > OriginSphereSource
void SetYAxisVector(const double v[3])
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
void SetXAxisVector(const double v[3])
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
vtkNew< vtkActor > LockerXVectorConeActor
void Rotate(double X, double Y, double *p1, double *p2, double *vpn)
bool PickDirectionPoint(int X, int Y, bool snapToMeshPoint=false)
Given the X, Y display coordinates, pick a point and using the origin define normal for the coordinat...
vtkNew< vtkHardwarePicker > HardwarePicker
void SetDirection(double d[3])
Set the direction of the locked (or absent a locked axis, the nearest axis) to point from the frame's...
void SetZTranslationAxisOn()
Toggles constraint translation axis on/off.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
void SetNormal(double n[3])
Set/Get the normal of one of the axes of the coordinate frame.
vtkNew< vtkProperty > SelectedUnlockedYVectorProperty
vtkNew< vtkPolyDataMapper > LockerYVectorConeMapper
void HighlightLockerZVector(int highlight)
virtual void SetRepresentationState(int)
Sets the visual appearance of the representation based on the state it is in.
vtkNew< vtkConeSource > LockerZVectorConeSource
void ModifyingLocker(int axis)
vtkNew< vtkLineSource > ZVectorLineSource
void SetYAxisVector(double x, double y, double z)
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
void SetNormal(double x, double y, double z)
Set/Get the normal of one of the axes of the coordinate frame.
vtkNew< vtkPolyDataMapper > LockerZVectorConeMapper
vtkNew< vtkProperty > SelectedZVectorProperty
void WidgetInteraction(double newEventPos[2]) override
Methods to interface with the vtkCoordinateFrameWidget.
bool PickOrigin(int X, int Y, bool snapToMeshPoint=false)
Given the X, Y display coordinates, pick a new origin for the coordinate frame from a point that is o...
vtkNew< vtkProperty > SelectedLockedYVectorProperty
void HighlightYVector(int highlight)
vtkNew< vtkActor > XVectorLineActor
void SetYTranslationAxisOn()
Toggles constraint translation axis on/off.
void SetZAxisVector(const double v[3])
Force an axis to be aligned with the vector v, regardless of whether any axis is locked.
vtkNew< vtkProperty > SelectedXVectorProperty
void HighlightLockerYVector(int highlight)
vtkNew< vtkActor > LockerZVectorConeActor
void StartWidgetInteraction(double eventPos[2]) override
Methods to interface with the vtkCoordinateFrameWidget.
vtkNew< vtkPolyDataMapper > OriginSphereMapper
extract interior, boundary, non-manifold, and/or sharp edges from polygonal data
provides thread-safe access to cells
pick a point or snap to point of an actor/prop using graphics hardware
a simple class to control print indentation
create a line defined by two end points
Allocate and hold a VTK object.
perform various plane computations
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
represent surface properties of a geometric object
create a polygonal sphere centered at the origin
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_SIZEHINT(...)