29 #ifndef vtkImplicitPlaneRepresentation_h
30 #define vtkImplicitPlaneRepresentation_h
33 #include "vtkInteractionWidgetsModule.h"
34 #include "vtkLegacy.h"
37 VTK_ABI_NAMESPACE_BEGIN
78 void SetOrigin(
double x,
double y,
double z);
79 void SetOrigin(
double x[3]);
81 void GetOrigin(
double xyz[3]);
88 void SetNormal(
double x,
double y,
double z);
89 void SetNormal(
double n[3]);
90 void SetNormalToCamera();
92 void GetNormal(
double xyz[3]);
104 vtkGetMacro(NormalToXAxis, vtkTypeBool);
105 vtkBooleanMacro(NormalToXAxis, vtkTypeBool);
106 void SetNormalToYAxis(vtkTypeBool);
107 vtkGetMacro(NormalToYAxis, vtkTypeBool);
108 vtkBooleanMacro(NormalToYAxis, vtkTypeBool);
109 void SetNormalToZAxis(vtkTypeBool);
110 vtkGetMacro(NormalToZAxis, vtkTypeBool);
111 vtkBooleanMacro(NormalToZAxis, vtkTypeBool);
120 virtual
void SetLockNormalToCamera(vtkTypeBool);
121 vtkGetMacro(LockNormalToCamera, vtkTypeBool);
122 vtkBooleanMacro(LockNormalToCamera, vtkTypeBool);
130 vtkSetMacro(Tubing, vtkTypeBool);
131 vtkGetMacro(Tubing, vtkTypeBool);
132 vtkBooleanMacro(Tubing, vtkTypeBool);
142 void SetDrawPlane(vtkTypeBool plane);
143 vtkGetMacro(DrawPlane, vtkTypeBool);
144 vtkBooleanMacro(DrawPlane, vtkTypeBool);
151 void SetDrawOutline(vtkTypeBool plane);
152 vtkGetMacro(DrawOutline, vtkTypeBool);
153 vtkBooleanMacro(DrawOutline, vtkTypeBool);
161 vtkSetMacro(OutlineTranslation, vtkTypeBool);
162 vtkGetMacro(OutlineTranslation, vtkTypeBool);
163 vtkBooleanMacro(OutlineTranslation, vtkTypeBool);
171 vtkSetMacro(OutsideBounds, vtkTypeBool);
172 vtkGetMacro(OutsideBounds, vtkTypeBool);
173 vtkBooleanMacro(OutsideBounds, vtkTypeBool);
180 void SetXTranslationAxisOn() { this->TranslationAxis = Axis::XAxis; }
200 vtkSetVector6Macro(WidgetBounds,
double);
201 vtkGetVector6Macro(WidgetBounds,
double);
214 vtkBooleanMacro(ConstrainToWidgetBounds,
vtkTypeBool);
258 void UpdatePlacement();
265 vtkGetObjectMacro(SelectedNormalProperty,
vtkProperty);
274 vtkGetObjectMacro(SelectedPlaneProperty,
vtkProperty);
282 vtkGetObjectMacro(SelectedOutlineProperty,
vtkProperty);
299 void SetInteractionColor(
double,
double,
double);
301 void SetHandleColor(
double,
double,
double);
303 void SetForegroundColor(
double,
double,
double);
312 void SetEdgeColor(
double,
double,
double);
313 void SetEdgeColor(
double c[3]);
322 vtkSetClampMacro(BumpDistance,
double, 0.000001, 1);
323 vtkGetMacro(BumpDistance,
double);
334 void BumpPlane(
int dir,
double factor);
342 void PushPlane(
double distance);
355 unsigned long event,
void* calldata)
override;
357 unsigned long event,
void* calldata)
override;
359 unsigned long event,
void* calldata,
int modify = 0)
override;
361 unsigned long event,
void* calldata)
override;
370 void ReleaseGraphicsResources(
vtkWindow*) override;
372 int RenderTranslucentPolygonalGeometry(
vtkViewport*) override;
373 vtkTypeBool HasTranslucentPolygonalGeometry() override;
387 #if !defined(VTK_LEGACY_REMOVE)
402 vtkSetClampMacro(InteractionState,
int, Outside, Scaling);
410 virtual void SetRepresentationState(
int);
411 vtkGetMacro(RepresentationState,
int);
423 virtual void SetCropPlaneToBoundingBox(
bool);
424 vtkGetMacro(CropPlaneToBoundingBox,
bool);
425 vtkBooleanMacro(CropPlaneToBoundingBox,
bool);
433 vtkGetMacro(SnapToAxes,
bool);
434 vtkSetMacro(SnapToAxes,
bool);
444 vtkGetMacro(AlwaysSnapToNearestAxis,
bool);
447 this->AlwaysSnapToNearestAxis = snap;
448 this->SetNormal(this->GetNormal());
459 double LastEventPosition[3];
460 double LastEventOrientation[4];
461 double StartEventOrientation[4];
468 double SnappedEventOrientation[4];
490 void HighlightOutline(
int highlight);
494 double WidgetBounds[6];
504 void HighlightPlane(
int highlight);
517 void HighlightNormal(
int highlight);
544 void Rotate(
double X,
double Y,
double* p1,
double* p2,
double* vpn);
545 void Rotate3D(
double* p1,
double* p2);
546 void TranslateOutline(
double* p1,
double* p2);
547 void TranslateOrigin(
double* p1,
double* p2);
548 void UpdatePose(
double* p1,
double* d1,
double* p2,
double* d2);
549 void Push(
double* p1,
double* p2);
550 void Scale(
double* p1,
double* p2,
double X,
double Y);
562 virtual void CreateDefaultProperties();
574 VTK_ABI_NAMESPACE_END
bool CropPlaneToBoundingBox
Cut vtkDataSet with user-specified implicit function.
vtkProperty * EdgesProperty
represents an object (geometry & properties) in a rendered scene
void SetZTranslationAxisOn()
Toggles constraint translation axis on/off.
vtkPolyDataMapper * LineMapper
vtkPolyDataMapper * EdgesMapper
vtkConeSource * ConeSource
abstract specification for Viewports
represent surface properties of a geometric object
vtkProperty * SelectedPlaneProperty
#define VTK_DEPRECATED_IN_9_2_0(reason)
bool AlwaysSnapToNearestAxis
vtkOutlineFilter * Outline
vtkProperty * SelectedNormalProperty
map scalar values into colors via a lookup table
vtkTypeBool NormalToXAxis
vtkTypeBool NormalToZAxis
vtkPolyDataMapper * ConeMapper
void SetInteractionColor(double c[3])
Set the color of all the widget's handles (edges, cone1, cone2, line, sphere, selected plane) and the...
vtkProperty * NormalProperty
concrete dataset represents vertices, lines, polygons, and triangle strips
void SetTranslationAxisOff()
Toggles constraint translation axis on/off.
vtkPlaneSource * PlaneSource
window superclass for vtkRenderWindow
platform-independent render window interaction including picking and frame rate control.
create wireframe outline for an arbitrary data set or composite dataset
create a polygonal sphere centered at the origin
void SetYTranslationAxisOn()
Toggles constraint translation axis on/off.
Superclass for algorithms that produce only polydata as output.
filter that generates tubes around lines
vtkProperty * PlaneProperty
a simple class to control print indentation
a class defining the representation for a vtkImplicitPlaneWidget2
extract interior, boundary, non-manifold, and/or sharp edges from polygonal data
vtkTypeBool LockNormalToCamera
topologically and geometrically regular array of data
void SetHandleColor(double c[3])
Set the color of all the widget's handles (edges, cone1, cone2, line, sphere, selected plane) and the...
vtkPolyDataMapper * SphereMapper
perform various plane computations
void SetForegroundColor(double c[3])
Set the color of all the widget's handles (edges, cone1, cone2, line, sphere, selected plane) and the...
#define VTK_SIZEHINT(...)
vtkPolyDataMapper * OutlineMapper
create an array of quadrilaterals located in a plane
vtkLineSource * LineSource
vtkProperty * SelectedOutlineProperty
vtkConeSource * ConeSource2
create a line defined by two end points
map vtkPolyData to graphics primitives
vtkTypeBool OutsideBounds
vtkTypeBool OutlineTranslation
vtkTubeFilter * EdgesTuber
vtkTypeBool NormalToYAxis
virtual void SetAlwaysSnapToNearestAxis(bool snap)
Forces the plane's normal to be aligned with x, y or z axis.
vtkPlane * GetUnderlyingPlane()
ray-cast cell picker for all kinds of Prop3Ds
vtkPolyDataMapper * ConeMapper2
bool IsTranslationConstrained()
Returns true if ConstrainedAxis.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkProperty * OutlineProperty
implicit function for a bounding box
vtkTypeBool ConstrainToWidgetBounds
vtkPolyDataMapper * CutMapper