30 #ifndef vtkImplicitCylinderRepresentation_h
31 #define vtkImplicitCylinderRepresentation_h
34 #include "vtkInteractionWidgetsModule.h"
35 #include "vtkLegacy.h"
38 VTK_ABI_NAMESPACE_BEGIN
57 #define VTK_MAX_CYL_RESOLUTION 2048
81 void SetCenter(
double x,
double y,
double z);
82 void SetCenter(
double x[3]);
84 void GetCenter(
double xyz[3]);
92 void SetAxis(
double x,
double y,
double z);
93 void SetAxis(
double a[3]);
95 void GetAxis(
double a[3]);
103 void SetRadius(
double r);
115 vtkSetClampMacro(MinRadius,
double, 0.001, 0.25);
116 vtkGetMacro(MinRadius,
double);
118 vtkGetMacro(MaxRadius,
double);
130 vtkGetMacro(AlongXAxis, vtkTypeBool);
131 vtkBooleanMacro(AlongXAxis, vtkTypeBool);
132 void SetAlongYAxis(vtkTypeBool);
133 vtkGetMacro(AlongYAxis, vtkTypeBool);
134 vtkBooleanMacro(AlongYAxis, vtkTypeBool);
135 void SetAlongZAxis(vtkTypeBool);
136 vtkGetMacro(AlongZAxis, vtkTypeBool);
137 vtkBooleanMacro(AlongZAxis, vtkTypeBool);
147 void SetDrawCylinder(vtkTypeBool drawCyl);
148 vtkGetMacro(DrawCylinder, vtkTypeBool);
149 vtkBooleanMacro(DrawCylinder, vtkTypeBool);
160 vtkGetMacro(Resolution,
int);
169 vtkSetMacro(Tubing, vtkTypeBool);
170 vtkGetMacro(Tubing, vtkTypeBool);
171 vtkBooleanMacro(Tubing, vtkTypeBool);
179 vtkSetMacro(OutlineTranslation, vtkTypeBool);
180 vtkGetMacro(OutlineTranslation, vtkTypeBool);
181 vtkBooleanMacro(OutlineTranslation, vtkTypeBool);
189 vtkSetMacro(OutsideBounds, vtkTypeBool);
190 vtkGetMacro(OutsideBounds, vtkTypeBool);
191 vtkBooleanMacro(OutsideBounds, vtkTypeBool);
201 vtkSetVector6Macro(WidgetBounds,
double);
202 vtkGetVector6Macro(WidgetBounds,
double);
214 vtkSetMacro(ConstrainToWidgetBounds, vtkTypeBool);
215 vtkGetMacro(ConstrainToWidgetBounds, vtkTypeBool);
216 vtkBooleanMacro(ConstrainToWidgetBounds, vtkTypeBool);
223 vtkSetMacro(ScaleEnabled, vtkTypeBool);
224 vtkGetMacro(ScaleEnabled, vtkTypeBool);
225 vtkBooleanMacro(ScaleEnabled, vtkTypeBool);
246 void UpdatePlacement();
253 vtkGetObjectMacro(SelectedAxisProperty, vtkProperty);
261 vtkGetObjectMacro(CylinderProperty, vtkProperty);
262 vtkGetObjectMacro(SelectedCylinderProperty, vtkProperty);
269 vtkGetObjectMacro(OutlineProperty, vtkProperty);
270 vtkGetObjectMacro(SelectedOutlineProperty, vtkProperty);
278 vtkGetObjectMacro(EdgesProperty, vtkProperty);
287 void SetInteractionColor(
double,
double,
double);
289 void SetHandleColor(
double,
double,
double);
291 void SetForegroundColor(
double,
double,
double);
302 void SetEdgeColor(
double,
double,
double) {}
304 void SetEdgeColor(
double[3]) {}
337 vtkSetClampMacro(BumpDistance,
double, 0.000001, 1);
338 vtkGetMacro(BumpDistance,
double);
348 void BumpCylinder(
int dir,
double factor);
356 void PushCylinder(
double distance);
370 #if !defined(VTK_LEGACY_REMOVE)
385 vtkSetClampMacro(InteractionState,
int, Outside, TranslatingCenter);
393 virtual void SetRepresentationState(
int);
394 vtkGetMacro(RepresentationState,
int);
407 vtkGetMacro(TranslationAxis,
int);
408 vtkSetClampMacro(TranslationAxis,
int, -1, 2);
437 double LastEventPosition[3];
462 void HighlightOutline(
int highlight);
466 double WidgetBounds[6];
474 void HighlightCylinder(
int highlight);
487 void HighlightNormal(
int highlight);
517 void Rotate(
double X,
double Y,
double* p1,
double* p2,
double* vpn);
518 void TranslateCylinder(
double* p1,
double* p2);
519 void TranslateOutline(
double* p1,
double* p2);
520 void TranslateCenter(
double* p1,
double* p2);
521 void TranslateCenterOnAxis(
double* p1,
double* p2);
522 void ScaleRadius(
double* p1,
double* p2);
523 void AdjustRadius(
double X,
double Y,
double* p1,
double* p2);
524 void Scale(
double* p1,
double* p2,
double X,
double Y);
536 void CreateDefaultProperties();
539 void BuildCylinder();
549 VTK_ABI_NAMESPACE_END
vtkPolyDataMapper * ConeMapper
void SetZTranslationAxisOn()
Toggles constraint translation axis on/off.
vtkConeSource * ConeSource2
bool IsTranslationConstrained()
Returns true if ConstrainedAxis.
represents an object (geometry & properties) in a rendered scene
int ConstrainToWidgetBounds
vtkPolyDataMapper * OutlineMapper
vtkOutlineFilter * Outline
abstract specification for Viewports
represent surface properties of a geometric object
#define VTK_DEPRECATED_IN_9_2_0(reason)
vtkTypeBool OutsideBounds
vtkProperty * CylinderProperty
defining the representation for a vtkImplicitCylinderWidget
map scalar values into colors via a lookup table
void SetForegroundColor(double c[3])
Set the color of all the widgets handles (edges, axis, selected cylinder) and their color during inte...
vtkPolyDataMapper * LineMapper
void SetTranslationAxisOff()
Toggles constraint translation axis on/off.
vtkLineSource * LineSource2
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkCellPicker * CylPicker
vtkConeSource * ConeSource
void SetXTranslationAxisOn()
Toggles constraint translation axis on/off.
vtkProperty * OutlineProperty
window superclass for vtkRenderWindow
create wireframe outline for an arbitrary data set or composite dataset
create a polygonal sphere centered at the origin
#define VTK_DEPRECATED_IN_9_3_0(reason)
Superclass for algorithms that produce only polydata as output.
vtkPolyDataMapper * LineMapper2
vtkProperty * SelectedAxisProperty
filter that generates tubes around lines
void SetYTranslationAxisOn()
Toggles constraint translation axis on/off.
a simple class to control print indentation
void SetInteractionColor(double c[3])
Set the color of all the widgets handles (edges, axis, selected cylinder) and their color during inte...
extract interior, boundary, non-manifold, and/or sharp edges from polygonal data
topologically and geometrically regular array of data
vtkProperty * SelectedOutlineProperty
vtkLineSource * LineSource
vtkPolyDataMapper * CylMapper
vtkProperty * EdgesProperty
#define VTK_SIZEHINT(...)
create a line defined by two end points
map vtkPolyData to graphics primitives
void SetHandleColor(double c[3])
Set the color of all the widgets handles (edges, axis, selected cylinder) and their color during inte...
vtkPolyDataMapper * SphereMapper
ray-cast cell picker for all kinds of Prop3Ds
vtkPolyDataMapper * EdgesMapper
vtkTubeFilter * EdgesTuber
vtkProperty * SelectedCylinderProperty
vtkTypeBool OutlineTranslation
implicit function for a cylinder
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
implicit function for a bounding box
vtkPolyDataMapper * ConeMapper2
#define VTK_MAX_CYL_RESOLUTION
vtkProperty * AxisProperty