23#ifndef vtkCoordinateFrameRepresentation_h
24#define vtkCoordinateFrameRepresentation_h
27#include "vtkInteractionWidgetsModule.h"
32VTK_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
346#if !defined(VTK_LEGACY_REMOVE)
361 vtkSetClampMacro(InteractionState,
int, Outside, ModifyingLockerZVector);
370 vtkGetMacro(RepresentationState,
int);
378 vtkSetClampMacro(LengthFactor,
double, 0, 1);
379 vtkGetMacro(LengthFactor,
double);
386 int RepresentationState = Outside;
389 double LastEventPosition[3];
391 bool PickCameraFocalInfo =
false;
398 double Origin[3] = { 0, 0, 0 };
399 double XVectorNormal[3] = { 1, 0, 0 };
400 double YVectorNormal[3] = { 0, 1, 0 };
401 double ZVectorNormal[3] = { 0, 0, 1 };
402 vtkSetVector3Macro(XVectorNormal,
double);
403 vtkSetVector3Macro(YVectorNormal,
double);
404 vtkSetVector3Macro(ZVectorNormal,
double);
422 bool XVectorIsLocked =
false;
438 bool YVectorIsLocked =
false;
454 bool ZVectorIsLocked =
false;
473 void Rotate(
double X,
double Y,
double* p1,
double* p2,
double* vpn);
506 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_DEPRECATED_IN_9_2_0(reason)
#define VTK_SIZEHINT(...)