3#include "MRVoxelsFwd.h"
4#include "MRDistanceVolumeParams.h"
5#include "MRMarchingCubes.h"
6#include "MRMesh/MRExpected.h"
7#include "MRMesh/MRProgressCallback.h"
8#include "MRMesh/MRClosestWeightedPoint.h"
9#include "MRMesh/MRBitSet.h"
10#include "MRMesh/MRBox.h"
11#include "MRPch/MRBindingMacros.h"
16struct DistanceVolumeCreationParams
18 DistanceVolumeParams vol;
20 DistanceFromWeightedPointsComputeParams dist;
24[[nodiscard]] MRVOXELS_API FunctionVolume
pointsToDistanceVolume(
const PointCloud & cloud,
const DistanceVolumeCreationParams& params );
27[[nodiscard]] MRVOXELS_API FunctionVolume
meshToDistanceVolume(
const Mesh & mesh,
const DistanceVolumeCreationParams& params );
28using meshToDistanceVolumeT = std::function<FunctionVolume(
const Mesh&,
const DistanceVolumeCreationParams&)>;
47 MR_BIND_PREFER_UNLOCK_GIL_WHEN_USED_AS_PARAM
50struct ParametersMetric : ParametersBase
53 DistanceFromWeightedPointsParams
dist;
56struct ParametersRegions : ParametersBase
81[[nodiscard]] MR_BIND_IGNORE MRVOXELS_API Expected<Mesh> pointsShell(
const PointCloud & cloud,
const ParametersMetric& params );
92[[nodiscard]] MR_BIND_IGNORE MRVOXELS_API Expected<Mesh> meshShell(
const Mesh & mesh,
const ParametersMetric& params );
100MRVOXELS_API
VertScalars calculateShellWeightsFromRegions(
101 const Mesh& mesh,
const std::vector<ParametersRegions::Region>& regions,
float interpolationDist );
104[[nodiscard]] MRVOXELS_API Expected<Mesh> meshShell(
const Mesh& mesh,
const ParametersRegions& params );
107[[nodiscard]] MRVOXELS_API Expected<Mesh> meshShell(
const Mesh& mesh,
const ParametersRegions& params, meshToDistanceVolumeT volumeBuilder );
Definition MRMesh/MRMesh.h:23
Definition MRMesh/MRPointCloud.h:17
new unsafe ref float voxelSize
new unsafe MR.Std.Function_BoolFuncFromFloat progress
new unsafe ref float offset
new unsafe ref float numLayers
Definition MRWeightedPointsShell.h:51
new unsafe MR.DistanceFromWeightedPointsParams dist
Definition MRWeightedPointsShell.h:57
new unsafe ref float interpolationDist
new unsafe MR.Std.Vector_MRWeightedShellParametersRegionsRegion regions
new unsafe ref bool bidirectionalMode
static unsafe MR.FunctionVolume pointsToDistanceVolume(MR.Const_PointCloud cloud, MR.WeightedShell.Const_DistanceVolumeCreationParams params_)
static unsafe MR.FunctionVolume meshToDistanceVolume(MR.Const_Mesh mesh, MR.WeightedShell.Const_DistanceVolumeCreationParams params_)
Definition MRWeightedPointsShell.h:59