59 #ifndef vtkContourRepresentation_h
60 #define vtkContourRepresentation_h
62 #include "vtkInteractionWidgetsModule.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];
134 virtual int AddNodeAtWorldPosition(
double x,
double y,
double z);
135 virtual int AddNodeAtWorldPosition(
double worldPos[3] );
136 virtual int AddNodeAtWorldPosition(
double worldPos[3],
137 double worldOrient[9] );
147 virtual int AddNodeAtDisplayPosition(
double displayPos[2] );
148 virtual int AddNodeAtDisplayPosition(
int displayPos[2] );
149 virtual int AddNodeAtDisplayPosition(
int X,
int Y );
159 virtual int ActivateNode(
double displayPos[2] );
160 virtual int ActivateNode(
int displayPos[2] );
161 virtual int ActivateNode(
int X,
int Y );
169 virtual int SetActiveNodeToWorldPosition(
double pos[3] );
170 virtual int SetActiveNodeToWorldPosition(
double pos[3],
181 virtual int SetActiveNodeToDisplayPosition(
double pos[2] );
182 virtual int SetActiveNodeToDisplayPosition(
int pos[2] );
183 virtual int SetActiveNodeToDisplayPosition(
int X,
int Y );
190 virtual int ToggleActiveNodeSelected();
191 virtual int GetActiveNodeSelected();
192 virtual int GetNthNodeSelected(
int);
193 virtual int SetNthNodeSelected(
int);
200 virtual int GetActiveNodeWorldPosition(
double pos[3] );
206 virtual int GetActiveNodeWorldOrientation(
double orient[9] );
212 virtual int GetActiveNodeDisplayPosition(
double pos[2] );
217 virtual int GetNumberOfNodes();
224 virtual int GetNthNodeDisplayPosition(
int n,
double pos[2] );
231 virtual int GetNthNodeWorldPosition(
int n,
double pos[3] );
243 virtual int GetNthNodeWorldOrientation(
int n,
double orient[9] );
254 virtual int SetNthNodeDisplayPosition(
int n,
int X,
int Y );
255 virtual int SetNthNodeDisplayPosition(
int n,
int pos[2] );
256 virtual int SetNthNodeDisplayPosition(
int n,
double pos[2] );
267 virtual int SetNthNodeWorldPosition(
int n,
double pos[3] );
268 virtual int SetNthNodeWorldPosition(
int n,
double pos[3],
277 virtual int GetNthNodeSlope(
int idx,
double slope[3] );
286 virtual int GetNumberOfIntermediatePoints(
int n );
294 virtual int GetIntermediatePointWorldPosition(
int n,
295 int idx,
double point[3] );
302 virtual int AddIntermediatePointWorldPosition(
int n,
311 virtual int AddIntermediatePointWorldPosition(
int n,
318 virtual int DeleteLastNode();
324 virtual int DeleteActiveNode();
330 virtual int DeleteNthNode(
int n );
335 virtual void ClearAllNodes();
341 virtual int AddNodeOnContour(
int X,
int Y );
348 vtkSetClampMacro(PixelTolerance,
int,1,100);
349 vtkGetMacro(PixelTolerance,
int);
358 vtkGetMacro(WorldTolerance,
double);
379 vtkGetMacro( CurrentOperation,
int );
380 vtkSetClampMacro( CurrentOperation,
int,
455 virtual vtkPolyData* GetContourRepresentationAsPolyData() = 0;
463 vtkSetMacro(RebuildLocator,
bool);
486 void AddNodeAtPositionInternal(
double worldPos[3],
487 double worldOrient[9],
int displayPos[2] );
488 void AddNodeAtPositionInternal(
double worldPos[3],
489 double worldOrient[9],
double displayPos[2] );
490 void SetNthNodeWorldPositionInternal(
int n,
double worldPos[3],
491 double worldOrient[9] );
498 void GetRendererComputedDisplayPositionFromWorldPosition(
double worldPos[3],
499 double worldOrient[9],
int displayPos[2] );
500 void GetRendererComputedDisplayPositionFromWorldPosition(
double worldPos[3],
501 double worldOrient[9],
double displayPos[2] );
504 virtual void UpdateLines(
int index );
505 void UpdateLine(
int idx1,
int idx2 );
507 virtual int FindClosestPointOnContour(
int X,
int Y,
511 virtual void BuildLines()=0;
516 virtual int UpdateContour();
521 mid[0] = (p1[0] + p2[0])/2;
522 mid[1] = (p1[1] + p2[1])/2;
523 mid[2] = (p1[2] + p2[2])/2;