42 #ifndef vtkImplicitCylinderRepresentation_h 43 #define vtkImplicitCylinderRepresentation_h 45 #include "vtkInteractionWidgetsModule.h" 66 #define VTK_MAX_CYL_RESOLUTION 2048 89 void SetCenter(
double x,
double y,
double z);
90 void SetCenter(
double x[3]);
92 void GetCenter(
double xyz[3]);
100 void SetAxis(
double x,
double y,
double z);
101 void SetAxis(
double a[3]);
103 void GetAxis(
double a[3]);
111 void SetRadius(
double r);
123 vtkSetClampMacro(MinRadius,
double,0.001,0.25);
124 vtkGetMacro(MinRadius,
double);
126 vtkGetMacro(MaxRadius,
double);
138 vtkGetMacro(AlongXAxis,vtkTypeBool);
139 vtkBooleanMacro(AlongXAxis,vtkTypeBool);
140 void SetAlongYAxis(vtkTypeBool);
141 vtkGetMacro(AlongYAxis,vtkTypeBool);
142 vtkBooleanMacro(AlongYAxis,vtkTypeBool);
143 void SetAlongZAxis(vtkTypeBool);
144 vtkGetMacro(AlongZAxis,vtkTypeBool);
145 vtkBooleanMacro(AlongZAxis,vtkTypeBool);
155 void SetDrawCylinder(vtkTypeBool drawCyl);
156 vtkGetMacro(DrawCylinder,vtkTypeBool);
157 vtkBooleanMacro(DrawCylinder,vtkTypeBool);
168 vtkGetMacro(Resolution,
int);
177 vtkSetMacro(Tubing,vtkTypeBool);
178 vtkGetMacro(Tubing,vtkTypeBool);
179 vtkBooleanMacro(Tubing,vtkTypeBool);
187 vtkSetMacro(OutlineTranslation,vtkTypeBool);
188 vtkGetMacro(OutlineTranslation,vtkTypeBool);
189 vtkBooleanMacro(OutlineTranslation,vtkTypeBool);
197 vtkSetMacro(OutsideBounds,vtkTypeBool);
198 vtkGetMacro(OutsideBounds,vtkTypeBool);
199 vtkBooleanMacro(OutsideBounds,vtkTypeBool);
209 vtkSetVector6Macro(WidgetBounds,
double);
210 vtkGetVector6Macro(WidgetBounds,
double);
222 vtkSetMacro(ConstrainToWidgetBounds, vtkTypeBool);
223 vtkGetMacro(ConstrainToWidgetBounds, vtkTypeBool);
224 vtkBooleanMacro(ConstrainToWidgetBounds, vtkTypeBool);
231 vtkSetMacro(ScaleEnabled, vtkTypeBool);
232 vtkGetMacro(ScaleEnabled, vtkTypeBool);
233 vtkBooleanMacro(ScaleEnabled, vtkTypeBool);
254 void UpdatePlacement(
void);
261 vtkGetObjectMacro(SelectedAxisProperty,vtkProperty);
269 vtkGetObjectMacro(CylinderProperty,vtkProperty);
270 vtkGetObjectMacro(SelectedCylinderProperty,vtkProperty);
277 vtkGetObjectMacro(OutlineProperty,vtkProperty);
278 vtkGetObjectMacro(SelectedOutlineProperty,vtkProperty);
286 vtkGetObjectMacro(EdgesProperty,vtkProperty);
293 void SetEdgeColor(
double,
double,
double);
294 void SetEdgeColor(
double x[3]);
301 int ComputeInteractionState(
int X,
int Y,
int modify=0) override;
302 void PlaceWidget(
double bounds[6]) override;
303 void BuildRepresentation() override;
304 void StartWidgetInteraction(
double eventPos[2]) override;
305 void WidgetInteraction(
double newEventPos[2]) override;
306 void EndWidgetInteraction(
double newEventPos[2]) override;
313 double *GetBounds() override;
315 void ReleaseGraphicsResources(
vtkWindow*) override;
317 int RenderTranslucentPolygonalGeometry(
vtkViewport*) override;
318 vtkTypeBool HasTranslucentPolygonalGeometry() override;
327 vtkSetClampMacro(BumpDistance,
double,0.000001,1);
328 vtkGetMacro(BumpDistance,
double);
338 void BumpCylinder(
int dir,
double factor);
346 void PushCylinder(
double distance);
371 vtkSetClampMacro(InteractionState,
int,Outside,TranslatingCenter);
379 virtual void SetRepresentationState(
int);
380 vtkGetMacro(RepresentationState,
int);
395 double LastEventPosition[3];
420 void HighlightOutline(
int highlight);
424 double WidgetBounds[6];
432 void HighlightCylinder(
int highlight);
445 void HighlightNormal(
int highlight);
475 void Rotate(
double X,
double Y,
double *p1,
double *p2,
double *vpn);
476 void TranslateCylinder(
double *p1,
double *p2);
477 void TranslateOutline(
double *p1,
double *p2);
478 void TranslateCenter(
double *p1,
double *p2);
479 void TranslateCenterOnAxis(
double *p1,
double *p2);
480 void ScaleRadius(
double *p1,
double *p2);
481 void AdjustRadius(
double X,
double Y,
double *p1,
double *p2);
482 void Scale(
double *p1,
double *p2,
double X,
double Y);
494 void CreateDefaultProperties();
497 void BuildCylinder();
vtkPolyDataMapper * ConeMapper
vtkConeSource * ConeSource2
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
vtkTypeBool OutsideBounds
vtkProperty * CylinderProperty
defining the representation for a vtkImplicitCylinderWidget
map scalar values into colors via a lookup table
vtkPolyDataMapper * LineMapper
vtkLineSource * LineSource2
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkCellPicker * CylPicker
vtkConeSource * ConeSource
vtkProperty * OutlineProperty
window superclass for vtkRenderWindow
create wireframe outline for arbitrary data set
create a polygonal sphere centered at the origin
Superclass for algorithms that produce only polydata as output.
vtkPolyDataMapper * LineMapper2
vtkProperty * SelectedAxisProperty
filter that generates tubes around lines
a simple class to control print indentation
extract 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
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