MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::WeightedShell Namespace Reference

Classes

struct  DistanceVolumeCreationParams
 
struct  ParametersBase
 
struct  ParametersMetric
 
struct  ParametersRegions
 

Typedefs

using meshToDistanceVolumeT = std::function<FunctionVolume(const Mesh&, const DistanceVolumeCreationParams&)>
 

Functions

MRVOXELS_API FunctionVolume pointsToDistanceVolume (const PointCloud &cloud, const DistanceVolumeCreationParams &params)
 makes FunctionVolume representing minimal distance to weighted points
 
MRVOXELS_API FunctionVolume meshToDistanceVolume (const Mesh &mesh, const DistanceVolumeCreationParams &params)
 makes FunctionVolume representing minimal distance to mesh with weighted vertices
 
MR_BIND_IGNORE MRVOXELS_API Expected< MeshpointsShell (const PointCloud &cloud, const ParametersMetric &params)
 
MRVOXELS_API Expected< MeshpointsShell (const PointCloud &cloud, const VertScalars &pointWeights, const ParametersMetric &params)
 
MR_BIND_IGNORE MRVOXELS_API Expected< MeshmeshShell (const Mesh &mesh, const ParametersMetric &params)
 
MRVOXELS_API Expected< MeshmeshShell (const Mesh &mesh, const VertScalars &vertWeights, const ParametersMetric &params)
 
MRVOXELS_API VertScalars calculateShellWeightsFromRegions (const Mesh &mesh, const std::vector< ParametersRegions::Region > &regions, float interpolationDist)
 interpolate set of regions and assign weight to each vertex of the mesh
 
MRVOXELS_API Expected< MeshmeshShell (const Mesh &mesh, const ParametersRegions &params)
 this overload supports linear interpolation between the regions with different weight
 
MRVOXELS_API Expected< MeshmeshShell (const Mesh &mesh, const ParametersRegions &params, meshToDistanceVolumeT volumeBuilder)
 this overload allows to control how distance volume is build during the offset
 

Typedef Documentation

◆ meshToDistanceVolumeT

using MR::WeightedShell::meshToDistanceVolumeT = std::function<FunctionVolume(const Mesh&, const DistanceVolumeCreationParams&)>

Function Documentation

◆ calculateShellWeightsFromRegions()

MRVOXELS_API VertScalars MR::WeightedShell::calculateShellWeightsFromRegions ( const Mesh & mesh,
const std::vector< ParametersRegions::Region > & regions,
float interpolationDist )

interpolate set of regions and assign weight to each vertex of the mesh

◆ meshShell() [1/4]

MR_BIND_IGNORE MRVOXELS_API Expected< Mesh > MR::WeightedShell::meshShell ( const Mesh & mesh,
const ParametersMetric & params )
nodiscard

consider a mesh where each vertex has additive weight, and this weight is linearly interpolated in mesh triangles, and the distance to a point is considered equal to (euclidean distance - weight), constructs iso-surface of such distance field corresponding to params.offset value using marching cubes

◆ meshShell() [2/4]

MRVOXELS_API Expected< Mesh > MR::WeightedShell::meshShell ( const Mesh & mesh,
const ParametersRegions & params )
nodiscard

this overload supports linear interpolation between the regions with different weight

◆ meshShell() [3/4]

MRVOXELS_API Expected< Mesh > MR::WeightedShell::meshShell ( const Mesh & mesh,
const ParametersRegions & params,
meshToDistanceVolumeT volumeBuilder )
nodiscard

this overload allows to control how distance volume is build during the offset

◆ meshShell() [4/4]

MRVOXELS_API Expected< Mesh > MR::WeightedShell::meshShell ( const Mesh & mesh,
const VertScalars & vertWeights,
const ParametersMetric & params )
nodiscard

consider a mesh where each vertex has additive weight (taken from vertWeights and not from params), and this weight is linearly interpolated in mesh triangles, and the distance to a point is considered equal to (euclidean distance - weight), constructs iso-surface of such distance field corresponding to params.offset value using marching cubes

◆ meshToDistanceVolume()

MRVOXELS_API FunctionVolume MR::WeightedShell::meshToDistanceVolume ( const Mesh & mesh,
const DistanceVolumeCreationParams & params )
nodiscard

makes FunctionVolume representing minimal distance to mesh with weighted vertices

◆ pointsShell() [1/2]

MR_BIND_IGNORE MRVOXELS_API Expected< Mesh > MR::WeightedShell::pointsShell ( const PointCloud & cloud,
const ParametersMetric & params )
nodiscard

consider a point cloud where each point has additive weight, and the distance to a point is considered equal to (euclidean distance - weight), constructs iso-surface of such distance field corresponding to params.offset value using marching cubes

◆ pointsShell() [2/2]

MRVOXELS_API Expected< Mesh > MR::WeightedShell::pointsShell ( const PointCloud & cloud,
const VertScalars & pointWeights,
const ParametersMetric & params )
nodiscard

consider a point cloud where each point has additive weight (taken from pointWeights and not from params), and the distance to a point is considered equal to (euclidean distance - weight), constructs iso-surface of such distance field corresponding to params.offset value using marching cubes

◆ pointsToDistanceVolume()

MRVOXELS_API FunctionVolume MR::WeightedShell::pointsToDistanceVolume ( const PointCloud & cloud,
const DistanceVolumeCreationParams & params )
nodiscard

makes FunctionVolume representing minimal distance to weighted points