vtkPlotEdges.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
3 // SPDX-License-Identifier: BSD-3-Clause
9 #ifndef vtkPlotEdges_h
10 #define vtkPlotEdges_h
11 
13 #include "vtkPVVTKExtensionsFiltersGeneralModule.h" //needed for exports
14 
15 class vtkCollection;
16 class vtkPartitionedDataSet;
17 class vtkPolyData;
18 
20 {
21 public:
23  void PrintSelf(ostream& os, vtkIndent indent) override;
24 
25  static vtkPlotEdges* New();
26 
27 protected:
28  vtkPlotEdges();
29  ~vtkPlotEdges() override;
30 
31  class Node;
32  class Segment;
33 
34  int FillInputPortInformation(int port, vtkInformation* info) override;
36 
37  void ProcessMultiBlockDataSet(vtkMultiBlockDataSet* input, vtkMultiBlockDataSet* output);
38  void ProcessPartitionedDataSet(vtkPartitionedDataSet* input, vtkMultiBlockDataSet* output);
39  void Process(vtkPolyData* input, vtkMultiBlockDataSet* output);
40  static void ReducePolyData(vtkPolyData* polyData, vtkPolyData* output);
41 
42  void ExtractSegments(vtkPolyData* polyData, vtkCollection* segments, vtkCollection* nodes);
43  static void ExtractSegmentsFromExtremity(vtkPolyData* polyData, vtkCollection* segments,
44  vtkCollection* nodes, char* visitedCells, vtkIdType cellId, vtkIdType pointId, Node* node);
45  static void ConnectSegmentsWithNodes(vtkCollection* segments, vtkCollection* nodes);
46  static void SaveToMultiBlockDataSet(vtkCollection* segments, vtkMultiBlockDataSet* output);
47  static void MergeSegments(vtkCollection* segments, vtkCollection* nodes, Node* node,
48  Segment* segmentA, Segment* segmentB);
49  static vtkPlotEdges::Node* GetNodeAtPoint(vtkCollection* nodes, vtkIdType pointId);
50  static void PrintSegments(vtkCollection* segments);
51 
52 private:
53  vtkPlotEdges(const vtkPlotEdges&) = delete;
54  void operator=(const vtkPlotEdges&) = delete;
55 };
56 
57 #endif
int vtkIdType
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
static vtkMultiBlockDataSetAlgorithm * New()
#define VTKPVVTKEXTENSIONSFILTERSGENERAL_EXPORT
virtual int FillInputPortInformation(int port, vtkInformation *info)
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
void operator=(const vtkObjectBase &)