35 #ifndef vtkCoordinateFrameRepresentation_h
36 #define vtkCoordinateFrameRepresentation_h
39 #include "vtkInteractionWidgetsModule.h"
40 #include "vtkLegacy.h"
44 VTK_ABI_NAMESPACE_BEGIN
82 vtkGetVector3Macro(Origin,
double);
100 vtkGetVector3Macro(XVectorNormal,
double);
101 vtkGetVector3Macro(YVectorNormal,
double);
102 vtkGetVector3Macro(ZVectorNormal,
double);
269 vtkGetMacro(PickCameraFocalInfo,
bool);
270 vtkSetMacro(PickCameraFocalInfo,
bool);
271 vtkBooleanMacro(PickCameraFocalInfo,
bool);
356 ModifyingLockerZVector
358 #if !defined(VTK_LEGACY_REMOVE)
373 vtkSetClampMacro(InteractionState,
int, Outside, ModifyingLockerZVector);
382 vtkGetMacro(RepresentationState,
int);
390 vtkSetClampMacro(LengthFactor,
double, 0, 1);
391 vtkGetMacro(LengthFactor,
double);
398 int RepresentationState = Outside;
401 double LastEventPosition[3];
403 bool PickCameraFocalInfo =
false;
410 double Origin[3] = { 0, 0, 0 };
411 double XVectorNormal[3] = { 1, 0, 0 };
412 double YVectorNormal[3] = { 0, 1, 0 };
413 double ZVectorNormal[3] = { 0, 0, 1 };
414 vtkSetVector3Macro(XVectorNormal,
double);
415 vtkSetVector3Macro(YVectorNormal,
double);
416 vtkSetVector3Macro(ZVectorNormal,
double);
434 bool XVectorIsLocked =
false;
450 bool YVectorIsLocked =
false;
466 bool ZVectorIsLocked =
false;
485 void Rotate(
double X,
double Y,
double* p1,
double* p2,
double* vpn);
518 double LengthFactor = 0.04;
525 VTK_ABI_NAMESPACE_END
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
double * GetBounds() override
Methods supporting the rendering process.
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
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
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
static vtkCoordinateFrameRepresentation * New()
Instantiate the class.
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
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(...)