VTK  9.1.0
vtkHausdorffDistancePointSetFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHausdorffDistancePointSetFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 // Copyright (c) 2011 LTSI INSERM U642
16 // All rights reserved.
17 //
18 // Redistribution and use in source and binary forms, with or without modification,
19 // are permitted provided that the following conditions are met:
20 //
21 // * Redistributions of source code must retain the above copyright notice,
22 // this list of conditions and the following disclaimer.
23 // * Redistributions in binary form must reproduce the above copyright notice,
24 // this list of conditions and the following disclaimer in the documentation and/or
25 // other materials provided with the distribution.
26 // * Neither name of LTSI, INSERM nor the names
27 // of any contributors may be used to endorse or promote products derived from this
28 // software without specific prior written permission.
29 //
30 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
31 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33 // DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
34 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
35 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
37 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
39 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 
83 #ifndef vtkHausdorffDistancePointSetFilter_h
84 #define vtkHausdorffDistancePointSetFilter_h
85 
86 #include "vtkFiltersModelingModule.h" // For export macro
87 #include "vtkPointSetAlgorithm.h"
88 
89 class VTKFILTERSMODELING_EXPORT vtkHausdorffDistancePointSetFilter : public vtkPointSetAlgorithm
90 {
91 public:
93 
98  void PrintSelf(ostream& os, vtkIndent indent) override;
100 
102 
105  vtkGetVector2Macro(RelativeDistance, double);
107 
109 
112  vtkGetMacro(HausdorffDistance, double);
114 
116  {
118  POINT_TO_CELL
119  };
120 
122 
130  vtkSetMacro(TargetDistanceMethod, int);
131  vtkGetMacro(TargetDistanceMethod, int);
132  void SetTargetDistanceMethodToPointToPoint() { this->SetTargetDistanceMethod(POINT_TO_POINT); }
133  void SetTargetDistanceMethodToPointToCell() { this->SetTargetDistanceMethod(POINT_TO_CELL); }
134  const char* GetTargetDistanceMethodAsString();
136 
137 protected:
140 
143 
145  double RelativeDistance[2];
147 
148 private:
150  void operator=(const vtkHausdorffDistancePointSetFilter&) = delete;
151 };
153 {
155  {
156  return "PointToPoint";
157  }
158  else
159  {
160  return "PointToCell";
161  }
162 }
163 #endif
Compute Hausdorff distance between two point sets.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetTargetDistanceMethodToPointToCell()
Specify the strategy for computing the distance.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for construction, type and printing.
int TargetDistanceMethod
point-to-point if 0, point-to-cell if 1
double HausdorffDistance
hausdorff distance (max(relative distance))
static vtkHausdorffDistancePointSetFilter * New()
Standard methods for construction, type and printing.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetTargetDistanceMethodToPointToPoint()
Specify the strategy for computing the distance.
const char * GetTargetDistanceMethodAsString()
Specify the strategy for computing the distance.
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce output of the same type as input.
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453