Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
33class vtkIntArray;
34
42class vtkSegmentationCore_EXPORT vtkTopologicalHierarchy : public vtkObject
43{
44public:
45
47 vtkTypeMacro(vtkTopologicalHierarchy, vtkObject );
48 void PrintSelf(ostream& os, vtkIndent indent) override;
49
51 virtual vtkIntArray* GetOutputLevels();
52
57 virtual void Update();
58
60 vtkSetObjectMacro(InputPolyDataCollection, vtkPolyDataCollection);
61
63 vtkSetMacro(ContainConstraintFactor, double);
65 vtkGetMacro(ContainConstraintFactor, double);
66
67protected:
69 vtkSetObjectMacro(OutputLevels, vtkIntArray);
70
71protected:
74 bool Contains(vtkPolyData* polyOut, vtkPolyData* polyIn);
75
78
79protected:
81 vtkPolyDataCollection* InputPolyDataCollection;
82
86 vtkIntArray* OutputLevels;
87
95
97 unsigned int MaximumLevel;
98
99protected:
102
103private:
105 void operator=(const vtkTopologicalHierarchy&) = delete;
106};
107
108#endif
~vtkTopologicalHierarchy() override
bool OutputContainsEmptyLevels()
Determines if there are empty entries in the output level array.
void PrintSelf(ostream &os, vtkIndent indent) override
vtkPolyDataCollection * InputPolyDataCollection
Collection of poly data to determine the hierarchy for.
virtual vtkIntArray * GetOutputLevels()
Get output topological hierarchy levels.
bool Contains(vtkPolyData *polyOut, vtkPolyData *polyIn)
static vtkTopologicalHierarchy * New()
virtual void Update()
unsigned int MaximumLevel
Maximum level that can be assigned to a poly data.