MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshToDistanceVolume.h
1#pragma once
2
3#include "MRDistanceVolumeParams.h"
4#include "MRVoxelsVolume.h"
5#include "MRMesh/MRExpected.h"
6#include "MRMesh/MRMeshDistance.h"
7#include <memory>
8
9namespace MR
10{
11
12struct MeshToDistanceVolumeParams
13{
14 DistanceVolumeParams vol;
15
16 SignedDistanceToMeshOptions dist;
17
18 std::shared_ptr<IFastWindingNumber> fwn;
19};
20
22MRVOXELS_API Expected<SimpleVolumeMinMax> meshToDistanceVolume( const MeshPart& mp, const MeshToDistanceVolumeParams& params );
23
25MRVOXELS_API FunctionVolume meshToDistanceFunctionVolume( const MeshPart& mp, const MeshToDistanceVolumeParams& params );
26
27struct CloseToMeshVolumeParams
28{
30 float closeDist = 0;
31
33 DistanceVolumeParams vol;
34
36 const AffineXf3f* meshToWorld = nullptr;
37};
38
40MRVOXELS_API Expected<SimpleBinaryVolume> makeCloseToMeshVolume( const MeshPart& mp, const CloseToMeshVolumeParams& params );
41
44MRVOXELS_API Expected<SimpleVolumeMinMax> meshRegionToIndicatorVolume( const Mesh& mesh, const FaceBitSet& region,
45 float offset, const DistanceVolumeParams& params );
46
47struct MeshToDirectionVolumeParams
48{
49 DistanceVolumeParams vol;
50 DistanceToMeshOptions dist; // note that signMode is ignored in this algorithm
51 std::shared_ptr<IPointsToMeshProjector> projector;
52};
53
57MRVOXELS_API Expected<std::array<SimpleVolumeMinMax, 3>> meshToDirectionVolume( const MeshToDirectionVolumeParams& params );
58
59} //namespace MR
new unsafe MR.DistanceVolumeParams vol
new unsafe ref float closeDist
new unsafe MR.? ConstBox_AffineXf3f meshToWorld
static unsafe MR.SimpleBinaryVolume makeCloseToMeshVolume(MR.Const_MeshPart mp, MR.Const_CloseToMeshVolumeParams params_)
static unsafe MR.SimpleVolumeMinMax meshRegionToIndicatorVolume(MR.Const_Mesh mesh, MR.Const_FaceBitSet region, float offset, MR.Const_DistanceVolumeParams params_)
static unsafe MR.Std.Array_MRSimpleVolumeMinMax_3 meshToDirectionVolume(MR.Const_MeshToDirectionVolumeParams params_)
static unsafe MR.FunctionVolume meshToDistanceFunctionVolume(MR.Const_MeshPart mp, MR.Const_MeshToDistanceVolumeParams params_)
static unsafe MR.SimpleVolumeMinMax meshToDistanceVolume(MR.Const_MeshPart mp, MR.Const_MeshToDistanceVolumeParams params_)