28#ifndef vtkCurveRepresentation_h
29#define vtkCurveRepresentation_h
31#include "vtkInteractionWidgetsModule.h"
46#define VTK_PROJECTION_YZ 0
47#define VTK_PROJECTION_XZ 1
48#define VTK_PROJECTION_XY 2
49#define VTK_PROJECTION_OBLIQUE 3
74 vtkSetMacro(InteractionState,
int);
99 vtkGetMacro(ProjectionNormal,
int);
114 vtkGetMacro(ProjectionPosition,
double);
149 vtkGetMacro(NumberOfHandles,
int);
157 virtual
void SetDirectionalLine(
bool val);
159 virtual
bool GetDirectionalLine();
161 virtual
void DirectionalLineOn();
163 virtual
void DirectionalLineOff();
172 virtual
void SetDirectional(
bool val);
173 vtkGetMacro(Directional,
bool);
174 vtkBooleanMacro(Directional,
bool);
182 virtual
void SetHandlePosition(
int handle,
double x,
double y,
double z);
183 virtual
void SetHandlePosition(
int handle,
double xyz[3]);
184 virtual
void GetHandlePosition(
int handle,
double xyz[3]);
185 virtual
double* GetHandlePosition(
int handle);
212 virtual
double GetSummedLength() = 0;
228 void BuildRepresentation() override = 0;
229 int ComputeInteractionState(
int X,
int Y,
int modify = 0) override;
230 void StartWidgetInteraction(
double e[2]) override;
231 void WidgetInteraction(
double e[2]) override;
232 void EndWidgetInteraction(
double e[2]) override;
233 double* GetBounds() override;
251 void SetLineColor(
double r,
double g,
double b);
256 void RegisterPickers() override;
264 void SetCurrentHandleIndex(
int index);
265 vtkGetMacro(CurrentHandleIndex,
int);
273 vtkGetMacro(TranslationAxis,
int);
274 vtkSetClampMacro(TranslationAxis,
int, -1, 2);
281 void SetXTranslationAxisOn() { this->TranslationAxis =
Axis::XAxis; }
298 double LastEventPosition[3];
312 int NumberOfHandles = 0;
341 double LastPickPosition[3];
348 void Scale(
double* p1,
double* p2,
int X,
int Y);
350 void Spin(
double* p1,
double* p2,
double* vpn);
356 bool Directional =
false;
represents an object (geometry & properties) in a rendered scene
ray-cast cell picker for all kinds of Prop3Ds
vtkWidgetRepresentation base class for a widget that represents an curve that connects control points...
void ProjectPointsToOrthoPlane()
vtkProperty * HandleProperty
virtual void PushHandle(double *pos)
void Translate(double *p1, double *p2)
void SetProjectionPosition(double position)
Set the position of poly line handles and points in terms of a plane's position.
void ProjectPointsToPlane()
virtual int InsertHandleOnLine(double *pos)=0
Returns the position of insertion or -1 on fail.
vtkCellPicker * LinePicker
vtkCellPicker * HandlePicker
void SetTranslationAxisOff()
Toggles constraint translation axis on/off.
virtual vtkActor * GetHandleActor(int index)=0
void Scale(double *p1, double *p2, int X, int Y)
~vtkCurveRepresentation() override
void SetProjectionNormalToZAxes()
void SetZTranslationAxisOn()
Toggles constraint translation axis on/off.
virtual vtkHandleSource * GetHandleSource(int index)=0
void Spin(double *p1, double *p2, double *vpn)
virtual void SetNumberOfHandles(int npts)=0
Set/Get the number of handles for this widget.
void ProjectPointsToObliquePlane()
int HighlightHandle(vtkProp *prop)
void SetProjectionNormalToXAxes()
void CreateDefaultProperties()
void SetPlaneSource(vtkPlaneSource *plane)
Set up a reference to a vtkPlaneSource that could be from another widget object, e....
void SetYTranslationAxisOn()
Toggles constraint translation axis on/off.
void HighlightLine(int highlight)
void SetProjectionNormalToYAxes()
vtkPlaneSource * PlaneSource
vtkProperty * LineProperty
void SetProjectionNormalToOblique()
vtkProperty * SelectedLineProperty
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
bool IsTranslationConstrained()
Returns true if ContrainedAxis.
virtual void GetPolyData(vtkPolyData *pd)=0
Grab the polydata (including points) that defines the interpolating curve.
virtual void EraseHandle(const int &)
double ProjectionPosition
void MovePoint(double *p1, double *p2)
virtual void SizeHandles()
vtkTypeBool ProjectToPlane
virtual int GetHandleIndex(vtkProp *prop)=0
returns handle index or -1 on fail
vtkProperty * SelectedHandleProperty
dynamic, self-adjusting array of double
interface that can be inherited to define handler sources for any kind of interaction.
a simple class to control print indentation
create an array of quadrilaterals located in a plane
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
represent surface properties of a geometric object
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_DEPRECATED_IN_9_1_0(reason)