59 #ifndef vtkContourRepresentation_h
60 #define vtkContourRepresentation_h
91 std::vector<vtkContourRepresentationPoint*>
Points;
101 std::vector<vtkContourRepresentationNode*>
Nodes;
104 for(
unsigned int i=0;i<this->Nodes.size();i++)
106 for (
unsigned int j=0;j<this->Nodes[i]->Points.size();j++)
108 delete this->Nodes[i]->Points[j];
110 this->Nodes[i]->Points.clear();
111 delete this->Nodes[i];
130 virtual int AddNodeAtWorldPosition(
double x,
double y,
double z);
131 virtual int AddNodeAtWorldPosition(
double worldPos[3] );
132 virtual int AddNodeAtWorldPosition(
double worldPos[3],
133 double worldOrient[9] );
140 virtual int AddNodeAtDisplayPosition(
double displayPos[2] );
141 virtual int AddNodeAtDisplayPosition(
int displayPos[2] );
142 virtual int AddNodeAtDisplayPosition(
int X,
int Y );
149 virtual int ActivateNode(
double displayPos[2] );
150 virtual int ActivateNode(
int displayPos[2] );
151 virtual int ActivateNode(
int X,
int Y );
159 virtual int SetActiveNodeToWorldPosition(
double pos[3] );
160 virtual int SetActiveNodeToWorldPosition(
double pos[3],
168 virtual int SetActiveNodeToDisplayPosition(
double pos[2] );
169 virtual int SetActiveNodeToDisplayPosition(
int pos[2] );
170 virtual int SetActiveNodeToDisplayPosition(
int X,
int Y );
175 virtual int ToggleActiveNodeSelected();
176 virtual int GetActiveNodeSelected();
177 virtual int GetNthNodeSelected(
int);
178 virtual int SetNthNodeSelected(
int);
183 virtual int GetActiveNodeWorldPosition(
double pos[3] );
187 virtual int GetActiveNodeWorldOrientation(
double orient[9] );
191 virtual int GetActiveNodeDisplayPosition(
double pos[2] );
194 virtual int GetNumberOfNodes();
198 virtual int GetNthNodeDisplayPosition(
int n,
double pos[2] );
202 virtual int GetNthNodeWorldPosition(
int n,
double pos[3] );
209 virtual int GetNthNodeWorldOrientation(
int n,
double orient[9] );
217 virtual int SetNthNodeDisplayPosition(
int n,
int X,
int Y );
218 virtual int SetNthNodeDisplayPosition(
int n,
int pos[2] );
219 virtual int SetNthNodeDisplayPosition(
int n,
double pos[2] );
226 virtual int SetNthNodeWorldPosition(
int n,
double pos[3] );
227 virtual int SetNthNodeWorldPosition(
int n,
double pos[3],
233 virtual int GetNthNodeSlope(
int idx,
double slope[3] );
242 virtual int GetNumberOfIntermediatePoints(
int n );
248 virtual int GetIntermediatePointWorldPosition(
int n,
249 int idx,
double point[3] );
256 virtual int AddIntermediatePointWorldPosition(
int n,
264 virtual int AddIntermediatePointWorldPosition(
int n,
270 virtual int DeleteLastNode();
274 virtual int DeleteActiveNode();
277 virtual int DeleteNthNode(
int n );
280 virtual void ClearAllNodes();
284 virtual int AddNodeOnContour(
int X,
int Y );
289 vtkSetClampMacro(PixelTolerance,
int,1,100);
290 vtkGetMacro(PixelTolerance,
int);
297 vtkGetMacro(WorldTolerance,
double);
316 vtkGetMacro( CurrentOperation,
int );
317 vtkSetClampMacro( CurrentOperation,
int,
365 void SetClosedLoop(
int val );
366 vtkGetMacro( ClosedLoop,
int );
367 vtkBooleanMacro( ClosedLoop,
int );
373 virtual void SetShowSelectedNodes(
int);
374 vtkGetMacro( ShowSelectedNodes,
int );
375 vtkBooleanMacro( ShowSelectedNodes,
int );
379 virtual vtkPolyData* GetContourRepresentationAsPolyData() = 0;
385 vtkSetMacro(RebuildLocator,
bool);
408 void AddNodeAtPositionInternal(
double worldPos[3],
409 double worldOrient[9],
int displayPos[2] );
410 void AddNodeAtPositionInternal(
double worldPos[3],
411 double worldOrient[9],
double displayPos[2] );
412 void SetNthNodeWorldPositionInternal(
int n,
double worldPos[3],
413 double worldOrient[9] );
418 void GetRendererComputedDisplayPositionFromWorldPosition(
double worldPos[3],
419 double worldOrient[9],
int displayPos[2] );
420 void GetRendererComputedDisplayPositionFromWorldPosition(
double worldPos[3],
421 double worldOrient[9],
double displayPos[2] );
424 virtual void UpdateLines(
int index );
425 void UpdateLine(
int idx1,
int idx2 );
427 virtual int FindClosestPointOnContour(
int X,
int Y,
431 virtual void BuildLines()=0;
438 virtual int UpdateContour();
443 mid[0] = (p1[0] + p2[0])/2;
444 mid[1] = (p1[1] + p2[1])/2;
445 mid[2] = (p1[2] + p2[2])/2;
std::vector< vtkContourRepresentationNode * > Nodes
std::vector< vtkContourRepresentationPoint * > Points
void SetCurrentOperationToInactive()
double NormalizedDisplayPosition[2]
abstract specification for Viewports
record modification and/or execution time
void SetCurrentOperationToTranslate()
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkIncrementalOctreePointLocator * Locator
double WorldOrientation[9]
represent the vtkContourWidget
void SetCurrentOperationToShift()
window superclass for vtkRenderWindow
a simple class to control print indentation
void ComputeMidpoint(double p1[3], double p2[3], double mid[3])
list of point or cell ids
Abstract interface to translate 2D display positions to world coordinates.
vtkTimeStamp ContourBuildTime
vtkContourRepresentationInternals * Internal
Defines API for interpolating/modifying nodes from a vtkContourRepresentation.
void SetCurrentOperationToScale()
double NormalizedDisplayPosition[2]
vtkPointPlacer * PointPlacer
vtkContourLineInterpolator * LineInterpolator
Incremental octree in support of both point location and point insertion.