MeshLib
 
Loading...
Searching...
No Matches
MRMeshToDistanceVolume.h
Go to the documentation of this file.
1#pragma once
2
5#include "MRVoxelsVolume.h"
6#include "MRExpected.h"
7#include <cfloat>
8#include <memory>
9#include <optional>
10
11namespace MR
12{
13
34
36[[nodiscard]] MRMESH_API std::optional<float> signedDistanceToMesh( const MeshPart& mp, const Vector3f& p, const DistanceToMeshOptions& op );
37
39{
41
43
44 std::shared_ptr<IFastWindingNumber> fwn;
45};
46
49
51MRMESH_API FunctionVolume meshToDistanceFunctionVolume( const MeshPart& mp, const MeshToDistanceVolumeParams& params = {} );
52
56 float offset, const DistanceVolumeParams& params );
57
58
60{
62 DistanceToMeshOptions dist; // note that signMode is ignored in this algorithm
63 std::shared_ptr<IPointsToMeshProjector> projector;
64};
65
70
71} //namespace MR
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
Definition MRDotNet/MRBitSet.h:39
represents a 3-dimentional float-typed vector
Definition MRDotNet/MRVector3.h:8
Definition MRCameraOrientationPlugin.h:7
SignDetectionMode
how to determine the sign of distances from a mesh
Definition MRMesh/MRSignDetectionMode.h:8
@ ProjectionNormal
the sign is determined based on pseudonormal in closest mesh point (unsafe in case of self-intersecti...
MRMESH_API Expected< SimpleVolume > meshRegionToIndicatorVolume(const Mesh &mesh, const FaceBitSet &region, float offset, const DistanceVolumeParams &params)
MRMESH_API std::optional< float > signedDistanceToMesh(const MeshPart &mp, const Vector3f &p, const DistanceToMeshOptions &op)
computes signed distance from point (p) to mesh part (mp) following options (op)
MRMESH_API Expected< SimpleVolume > meshToDistanceVolume(const MeshPart &mp, const MeshToDistanceVolumeParams &params={})
makes SimpleVolume filled with (signed or unsigned) distances from Mesh with given settings
tl::expected< T, E > Expected
Definition MRExpected.h:49
MRMESH_API Expected< std::array< SimpleVolume, 3 > > meshToDirectionVolume(const MeshToDirectionVolumeParams &params)
MRMESH_API FunctionVolume meshToDistanceFunctionVolume(const MeshPart &mp, const MeshToDistanceVolumeParams &params={})
makes FunctionVolume representing (signed or unsigned) distances from Mesh with given settings
Definition MRMeshToDistanceVolume.h:15
float windingNumberThreshold
Definition MRMeshToDistanceVolume.h:28
float windingNumberBeta
Definition MRMeshToDistanceVolume.h:32
SignDetectionMode signMode
the method to compute distance sign
Definition MRMeshToDistanceVolume.h:23
float minDistSq
minimum squared distance from a point to mesh
Definition MRMeshToDistanceVolume.h:17
float maxDistSq
maximum squared distance from a point to mesh
Definition MRMeshToDistanceVolume.h:20
Definition MRDistanceVolumeParams.h:10
Definition MRMesh/MRMeshPart.h:11
Definition MRMeshToDistanceVolume.h:60
DistanceVolumeParams vol
Definition MRMeshToDistanceVolume.h:61
std::shared_ptr< IPointsToMeshProjector > projector
Definition MRMeshToDistanceVolume.h:63
DistanceToMeshOptions dist
Definition MRMeshToDistanceVolume.h:62
Definition MRMeshToDistanceVolume.h:39
DistanceVolumeParams vol
Definition MRMeshToDistanceVolume.h:40
DistanceToMeshOptions dist
Definition MRMeshToDistanceVolume.h:42
std::shared_ptr< IFastWindingNumber > fwn
Definition MRMeshToDistanceVolume.h:44
Definition MRMesh/MRMesh.h:23