28 #ifndef vtkCurveRepresentation_h
29 #define vtkCurveRepresentation_h
31 #include "vtkInteractionWidgetsModule.h"
47 #define VTK_PROJECTION_YZ 0
48 #define VTK_PROJECTION_XZ 1
49 #define VTK_PROJECTION_XY 2
50 #define VTK_PROJECTION_OBLIQUE 3
75 vtkSetMacro(InteractionState,
int);
100 vtkGetMacro(ProjectionNormal,
int);
115 vtkGetMacro(ProjectionPosition,
double);
150 vtkGetMacro(NumberOfHandles,
int);
159 vtkGetMacro(DirectionalLine,
bool);
160 vtkBooleanMacro(DirectionalLine,
bool);
251 vtkGetMacro(CurrentHandleIndex,
int);
259 vtkGetMacro(TranslationAxis,
int);
260 vtkSetClampMacro(TranslationAxis,
int, -1, 2);
286 double LastEventPosition[3];
326 double LastPickPosition[3];
333 void Scale(
double* p1,
double* p2,
int X,
int Y);
335 void Spin(
double* p1,
double* p2,
double* vpn);
362 vtkSetMacro(UseSphere,
bool);
363 vtkGetMacro(UseSphere,
bool);
364 vtkBooleanMacro(UseSphere,
bool);
367 vtkGetMacro(Radius,
double);
369 vtkSetVector3Macro(Center,
double);
370 vtkGetVectorMacro(Center,
double, 3);
372 vtkSetVector3Macro(Direction,
double);
373 vtkGetVectorMacro(Direction,
double, 3);
represents an object (geometry & properties) in a rendered scene
ray-cast cell picker for all kinds of Prop3Ds
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static HandleSource * New()
vtkWidgetRepresentation base class for a widget that represents an curve that connects control points...
void ProjectPointsToOrthoPlane()
vtkProperty * HandleProperty
void SetDirectionalLine(bool val)
Sets the representation to be a directional curve with the end represented as a cone.
void EraseHandle(const int &)
virtual void PushHandle(double *pos)
void Translate(double *p1, double *p2)
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
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.
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
int GetHandleIndex(vtkProp *prop)
virtual double GetSummedLength()=0
Get the approximate vs.
vtkCellPicker * LinePicker
virtual vtkDoubleArray * GetHandlePositions()=0
vtkCellPicker * HandlePicker
void SetTranslationAxisOff()
void Scale(double *p1, double *p2, int X, int Y)
~vtkCurveRepresentation() override
void SetProjectionNormalToZAxes()
vtkTypeBool HasTranslucentPolygonalGeometry() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual double * GetHandlePosition(int handle)
void WidgetInteraction(double e[2]) override
void EndWidgetInteraction(double e[2]) override
void SetZTranslationAxisOn()
vtkTypeBool IsClosed()
Convenience method to determine whether the curve is closed in a geometric sense.
void Spin(double *p1, double *p2, double *vpn)
double * GetBounds() override
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
void SetClosed(vtkTypeBool closed)
Control whether the curve is open or closed.
virtual void SetNumberOfHandles(int npts)=0
Set/Get the number of handles for this widget.
void SetLineColor(double r, double g, double b)
Convenience method to set the line color.
void ProjectPointsToObliquePlane()
void ReleaseGraphicsResources(vtkWindow *) override
Methods supporting, and required by, the rendering process.
int RenderOverlay(vtkViewport *) override
HandleSource ** HandleGeometry
int HighlightHandle(vtkProp *prop)
void BuildRepresentation() override=0
These are methods that satisfy vtkWidgetRepresentation's API.
int ComputeInteractionState(int X, int Y, int modify=0) override
void SetProjectionNormalToXAxes()
void CreateDefaultProperties()
int RenderOpaqueGeometry(vtkViewport *) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
void SetPlaneSource(vtkPlaneSource *plane)
Set up a reference to a vtkPlaneSource that could be from another widget object, e....
virtual void InitializeHandles(vtkPoints *points)=0
Convenience method to allocate and set the handles from a vtkPoints instance.
void SetYTranslationAxisOn()
void HighlightLine(int highlight)
void SetXTranslationAxisOn()
Toggles constraint translation axis on/off.
void SetProjectionNormalToYAxes()
virtual void SetHandlePosition(int handle, double x, double y, double z)
Set/Get the position of the handles.
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.
void StartWidgetInteraction(double e[2]) override
bool IsTranslationConstrained()
Returns true if ContrainedAxis.
virtual void GetHandlePosition(int handle, double xyz[3])
virtual void GetPolyData(vtkPolyData *pd)=0
Grab the polydata (including points) that defines the interpolating curve.
double ProjectionPosition
void MovePoint(double *p1, double *p2)
virtual void SizeHandles()
vtkTypeBool ProjectToPlane
virtual void SetHandlePosition(int handle, double xyz[3])
vtkProperty * SelectedHandleProperty
void SetCurrentHandleIndex(int index)
Get/Set the current handle index.
dynamic, self-adjusting array of double
a simple class to control print indentation
create an array of quadrilaterals located in a plane
represent and manipulate 3D points
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
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_PROJECTION_YZ
#define VTK_PROJECTION_OBLIQUE