SoSurfaceFittingApproximation3d surface approximation. More...
#include <ImageViz/Engines/ImageSegmentation/ComputationalGeometry/SoSurfaceFittingApproximation3d.h>
Public Types | |
enum | DetectionType { MAXIMUM, MINIMUM } |
enum | BoundaryCondition { DIRICHLET, NEUMANN } |
enum | RegularizationType { LAPLACIAN, LAPLACIAN_2 } |
Public Member Functions | |
SoSurfaceFittingApproximation3d () | |
int | getDirectionsSize () |
Public Attributes | |
SoSFStructuredQuadrilateralMesh | inSurface |
SoSFImageDataAdapter | inFeatureImage |
SoSFDouble | distance |
SoSFVec2d | thresholdLevel |
SoSFFloat | smoothing |
SoMFVec3f | directions |
SoSFEnum | detectionType |
SoSFEnum | leftBoundaryCondition |
SoSFEnum | rightBoundaryCondition |
SoSFEnum | topBoundaryCondition |
SoSFEnum | bottomBoundaryCondition |
SoSFEnum | regularizationType |
SoMFFloat | dirichletValues |
SoImageVizEngineOutput < SoSFStructuredQuadrilateralMesh, SbStructuredQuadrilateralMesh * > | outSurface |
SoImageVizEngineMFieldOutput < SoMFVec3f, const SbVec3f * > | outDirections |
This engine adjusts the positions of the vertices in a structured quadrilateral mesh based on "weight" values given in a volume. These values normally represent some features / structures in the volume, e.g. weights could be the distance to the outside of a wall.
The engine will search for a best fit along a direction specified for each vertex (the vertex surface normal by be default) up to a distance defined by the parameter distance. A voxel will be considered as a best fit based on a criterion given by the detectionType. A regularization can be applied on the resulting surface to smooth it and limit the effect of outliers.
inSurface | NULL |
inFeatureImage | NULL |
distance | 1.0 |
thresholdLevel | SbVec2d( 0.0, std::numeric_limits<double>::max() ) |
smoothing | 1.0f |
directions | SbVec3f( 0.0f, 0.0f, 0.0f ) |
detectionType | MAXIMUM |
SoPolylineExtrusionApproximation3d, SoSurfaceUnfoldingProcessing3d
SoSurfaceFittingApproximation3d::SoSurfaceFittingApproximation3d | ( | ) |
Constructor.
int SoSurfaceFittingApproximation3d::getDirectionsSize | ( | ) |
Number of directions.
The type of boundary conditions for the bottom boundary.
Defines the criterion on which a vertex will be kept as the best fit.
Use enum DetectionType. Default is MAXIMUM.
Defines the search direction for each vertex.
If the field is empty or if its size is different from the input surface number of vertices, the vertex normals are used as directions. Default value is SbVec3f( 0.0f, 0.0f, 0.0f ), so by default vertex normals are computed for the surface.
Dirichlet values for left, right, top and bottom boundary conditions.
Defines the maximum distance that vertices can be moved.
This distance is expressed in world coordinates of the input mesh. Default is 1.
Input 3D image containing weight values.
The type of boundary conditions for the left boundary.
SoImageVizEngineMFieldOutput< SoMFVec3f, const SbVec3f*> SoSurfaceFittingApproximation3d::outDirections |
Directions along which the most fitted value was searched.
SoImageVizEngineOutput<SoSFStructuredQuadrilateralMesh, SbStructuredQuadrilateralMesh*> SoSurfaceFittingApproximation3d::outSurface |
Output surface with fitted vertices.
The type of regularization used to enforce the smoothness of the mesh.
The type of boundary conditions for the right boundary.
A regularization is applied on the fitted mesh in order to smooth it and limit the effect of outliers.
The smoothing factor defines the strength of this regularization. The greater the value is the greater the smoothing will be. A smoothing value of 0 will disable the regularization. Default is 1.
Defines a range of values that can be considered for the best fit.
A value outside of this range will be considered as an outlier. Default is full range of double precision values.
The type of boundary conditions for the top boundary.