MeshLib Documentation
Loading...
Searching...
No Matches
MRInnerShell.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include <cfloat>
5
6namespace MR
7{
8
9enum class Side
10{
13};
14
16{
19
21 float maxDistSq = FLT_MAX;
22
24 bool useWindingNumber = false;
25
29
33};
34
37{
39 bool inRange = false;
40
42 bool projOnBd = false;
43
45 bool rightSide = false;
46
48 bool valid() const { return inRange && !projOnBd && rightSide; }
49};
50
54[[nodiscard]] MRMESH_API ShellVertexInfo classifyShellVert( const MeshPart & mp, const Vector3f & shellPoint, const FindInnerShellSettings & settings = {} );
55
58[[nodiscard]] MRMESH_API VertBitSet findInnerShellVerts( const MeshPart & mp, const Mesh & shell, const FindInnerShellSettings & settings = {} );
59
62[[nodiscard]] MRMESH_API FaceBitSet findInnerShellFacesWithSplits( const MeshPart & mp, Mesh & shell, const FindInnerShellSettings & settings = {} );
63
64} // namespace MR
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
Definition MRCameraOrientationPlugin.h:8
MRMESH_API VertBitSet findInnerShellVerts(const MeshPart &mp, const Mesh &shell, const FindInnerShellSettings &settings={})
Side
Definition MRInnerShell.h:10
MRMESH_API FaceBitSet findInnerShellFacesWithSplits(const MeshPart &mp, Mesh &shell, const FindInnerShellSettings &settings={})
MRMESH_API ShellVertexInfo classifyShellVert(const MeshPart &mp, const Vector3f &shellPoint, const FindInnerShellSettings &settings={})
Definition MRInnerShell.h:16
int minVertsInComp
Definition MRInnerShell.h:32
Side side
specifies which side of shell is of interest: negative or positive relative to mesh normals
Definition MRInnerShell.h:18
float windingNumberThreshold
Definition MRInnerShell.h:28
float maxDistSq
specifies maximum squared distance from shell parts of interest to source mesh
Definition MRInnerShell.h:21
bool useWindingNumber
if true, a slower algorithm is activated that is more robust in the presence of self-intersections on...
Definition MRInnerShell.h:24
Definition MRMesh/MRMesh.h:23
information about shell vertex
Definition MRInnerShell.h:37
bool inRange
true when shell vertex is within settings.maxDist from source mesh
Definition MRInnerShell.h:39
bool rightSide
whether shell vertex is on requested side of source mesh
Definition MRInnerShell.h:45
bool projOnBd
shell vertex projects on source mesh boundary (never true for winding rule mode)
Definition MRInnerShell.h:42
bool valid() const
returns true if shell vertex is in range, does not project on boundary and located on proper side
Definition MRInnerShell.h:48