20 #ifndef vtkPlotEdges_h 21 #define vtkPlotEdges_h 23 #include "vtkMultiBlockDataSetAlgorithm.h" 24 #include "vtkPVVTKExtensionsDefaultModule.h" 30 class vtkMultiBlockDataSet;
32 class VTKPVVTKEXTENSIONSDEFAULT_EXPORT
vtkPlotEdges :
public vtkMultiBlockDataSetAlgorithm
36 void PrintSelf(ostream& os, vtkIndent indent);
44 virtual int FillInputPortInformation(
int port, vtkInformation* info);
46 int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
48 void Process(vtkPolyData* input, vtkMultiBlockDataSet* output);
49 static void ReducePolyData(vtkPolyData* polyData, vtkPolyData* output);
51 void ExtractSegments(vtkPolyData* polyData, vtkCollection* segments, vtkCollection* nodes);
52 static void ExtractSegmentsFromExtremity(vtkPolyData* polyData, vtkCollection* segments,
53 vtkCollection* nodes,
char* visitedCells, vtkIdType cellId, vtkIdType pointId, Node* node);
54 static void ConnectSegmentsWithNodes(vtkCollection* segments, vtkCollection* nodes);
55 static void SaveToMultiBlockDataSet(vtkCollection* segments, vtkMultiBlockDataSet* output);
56 static void MergeSegments(vtkCollection* segments, vtkCollection* nodes, Node* node,
57 Segment* segmentA, Segment* segmentB);
58 static Node* GetNodeAtPoint(vtkCollection* nodes, vtkIdType pointId);
59 static void PrintSegments(vtkCollection* segments);