Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkTopologicalHierarchy.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4  Queen's University, Kingston, ON, Canada. All Rights Reserved.
5 
6  See COPYRIGHT.txt
7  or http://www.slicer.org/copyright/copyright.txt for details.
8 
9  Unless required by applicable law or agreed to in writing, software
10  distributed under the License is distributed on an "AS IS" BASIS,
11  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  See the License for the specific language governing permissions and
13  limitations under the License.
14 
15  This file was originally developed by Csaba Pinter, PerkLab, Queen's University
16  and was supported through the Applied Cancer Research Unit program of Cancer Care
17  Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
18 
19 ==============================================================================*/
20 
21 // .NAME vtkTopologicalHierarchy - Assigns hierarchy level values to the elements of a poly data collection
22 // .SECTION Description
23 
24 
25 #ifndef __vtkTopologicalHierarchy_h
26 #define __vtkTopologicalHierarchy_h
27 
28 // VTK includes
29 #include <vtkPolyDataCollection.h>
30 
31 #include "vtkSegmentationCoreConfigure.h"
32 
33 class vtkIntArray;
34 
43 class vtkSegmentationCore_EXPORT vtkTopologicalHierarchy : public vtkObject
44 {
45 public:
46 
47  static vtkTopologicalHierarchy *New();
48  vtkTypeMacro(vtkTopologicalHierarchy, vtkObject );
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
52  virtual vtkIntArray* GetOutputLevels();
53 
58  virtual void Update();
59 
61  vtkSetObjectMacro(InputPolyDataCollection, vtkPolyDataCollection);
62 
64  vtkSetMacro(ContainConstraintFactor, double);
66  vtkGetMacro(ContainConstraintFactor, double);
67 
68 protected:
70  vtkSetObjectMacro(OutputLevels, vtkIntArray);
71 
72 protected:
75  bool Contains(vtkPolyData* polyOut, vtkPolyData* polyIn);
76 
78  bool OutputContainsEmptyLevels();
79 
80 protected:
82  vtkPolyDataCollection* InputPolyDataCollection;
83 
87  vtkIntArray* OutputLevels;
88 
96 
98  unsigned int MaximumLevel;
99 
100 protected:
102  ~vtkTopologicalHierarchy() override;
103 
104 private:
106  void operator=(const vtkTopologicalHierarchy&) = delete;
107 };
108 
109 #endif
Algorithm class for computing topological hierarchy of multiple poly data models. The levels of the m...
vtkPolyDataCollection * InputPolyDataCollection
Collection of poly data to determine the hierarchy for.
unsigned int MaximumLevel
Maximum level that can be assigned to a poly data.