VTK  9.2.6
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 
86 #ifndef vtkHausdorffDistancePointSetFilter_h
87 #define vtkHausdorffDistancePointSetFilter_h
88 
89 #include "vtkFiltersModelingModule.h" // For export macro
90 #include "vtkPointSetAlgorithm.h"
91 
92 class VTKFILTERSMODELING_EXPORT vtkHausdorffDistancePointSetFilter : public vtkPointSetAlgorithm
93 {
94 public:
96 
101  void PrintSelf(ostream& os, vtkIndent indent) override;
103 
105 
108  vtkGetVector2Macro(RelativeDistance, double);
110 
112 
115  vtkGetMacro(HausdorffDistance, double);
117 
119  {
121  POINT_TO_CELL
122  };
123 
125 
133  vtkSetMacro(TargetDistanceMethod, int);
134  vtkGetMacro(TargetDistanceMethod, int);
135  void SetTargetDistanceMethodToPointToPoint() { this->SetTargetDistanceMethod(POINT_TO_POINT); }
136  void SetTargetDistanceMethodToPointToCell() { this->SetTargetDistanceMethod(POINT_TO_CELL); }
137  const char* GetTargetDistanceMethodAsString();
139 
140 protected:
143 
146 
148  double RelativeDistance[2];
150 
151 private:
153  void operator=(const vtkHausdorffDistancePointSetFilter&) = delete;
154 };
156 {
158  {
159  return "PointToPoint";
160  }
161  else
162  {
163  return "PointToCell";
164  }
165 }
166 #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:119
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