Skip to content

Libs/Analyze/CustomSurfaceReconstructionFilter.h

Classes

Name
class CustomSurfaceReconstructionFilter

Source code

```cpp /*=========================================================================

Program: Visualization Toolkit Module: CustomSurfaceReconstructionFilter.h

Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

 This software is distributed WITHOUT ANY WARRANTY; without even
 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the above copyright notice for more information.

=========================================================================*/ // .NAME CustomSurfaceReconstructionFilter - reconstructs a surface from unorganized points // .SECTION Description // CustomSurfaceReconstructionFilter takes a list of points assumed to lie on // the surface of a solid 3D object. A signed measure of the distance to the // surface is computed and sampled on a regular grid. The grid can then be // contoured at zero to extract the surface. The default values for // neighborhood size and sample spacing should give reasonable results for // most uses but can be set if desired. This procedure is based on the PhD // work of Hugues Hoppe: http://www.research.microsoft.com/~hoppe

ifndef __CustomSurfaceReconstructionFilter_h

define __CustomSurfaceReconstructionFilter_h

include "vtkImageAlgorithm.h"

class CustomSurfaceReconstructionFilter : public vtkImageAlgorithm { public: vtkTypeMacro(CustomSurfaceReconstructionFilter,vtkImageAlgorithm); void PrintSelf(ostream& os, vtkIndent indent);

// Description: // Construct with NeighborhoodSize=20. static CustomSurfaceReconstructionFilter* New();

// Description: // Specify the number of neighbors each point has, used for estimating the // local surface orientation. The default value of 20 should be OK for // most applications, higher values can be specified if the spread of // points is uneven. Values as low as 10 may yield adequate results for // some surfaces. Higher values cause the algorithm to take longer. Higher // values will cause errors on sharp boundaries. vtkGetMacro(NeighborhoodSize,int); vtkSetMacro(NeighborhoodSize,int);

// Description: // Specify the spacing of the 3D sampling grid. If not set, a // reasonable guess will be made. vtkGetMacro(SampleSpacing,double); vtkSetMacro(SampleSpacing,double);

protected: CustomSurfaceReconstructionFilter(); ~CustomSurfaceReconstructionFilter() {};

virtual int RequestInformation (vtkInformation , vtkInformationVector , vtkInformationVector ); virtual int RequestData (vtkInformation , vtkInformationVector , vtkInformationVector );

int NeighborhoodSize; double SampleSpacing;

virtual int FillInputPortInformation(int, vtkInformation*);

private: CustomSurfaceReconstructionFilter(const CustomSurfaceReconstructionFilter&); // Not implemented. void operator=(const CustomSurfaceReconstructionFilter&); // Not implemented. };

endif

```


Updated on 2026-03-31 at 16:02:10 +0000