MeshLib C++ Docs
Loading...
Searching...
No Matches
MRContoursCut.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRBitSet.h"
4#include "MRAffineXf3.h"
5#include "MROneMeshContours.h"
6
7namespace MR
8{
11
12
16{
19 UndirectedEdgeBitSet splitEdges;
20
24 HashMap<UndirectedEdgeId, int> map;
25};
26
35{
41 FaceMap* new2OldMap{nullptr};
46 enum class ForceFill
47 {
48 None,
49 Good,
50 All
51 } forceFillMode{ ForceFill::None };
52
55};
56
61struct CutMeshResult
62{
64 std::vector<EdgePath> resultCut;
68};
69
86MRMESH_API CutMeshResult cutMesh( Mesh& mesh, const OneMeshContours& contours, const CutMeshParameters& params = {} );
87
88
94[[nodiscard]] MRMESH_API Expected<FaceBitSet> cutMeshByContour( Mesh& mesh, const Contour3f& contour, const AffineXf3f& xf = {} );
95
101[[nodiscard]] MRMESH_API Expected<FaceBitSet> cutMeshByContours( Mesh& mesh, const Contours3f& contours, const AffineXf3f& xf = {} );
102
103
106{
108 Vector3f direction;
109
111 const AffineXf3f* cont2mesh{ nullptr };
112};
113
123[[nodiscard]] MRMESH_API Expected<std::vector<EdgePath>> cutMeshByProjection( Mesh& mesh, const Contours3f& contours, const CutByProjectionSettings& settings );
124
132[[nodiscard]]
133MRMESH_API Expected<OneMeshContours> convertMeshTriPointsSurfaceOffsetToMeshContours( const Mesh& mesh, const std::vector<MeshTriPoint>& surfaceLine,
134 float offset, SearchPathSettings searchSettings = {} );
135
143[[nodiscard]]
144MRMESH_API Expected<OneMeshContours> convertMeshTriPointsSurfaceOffsetToMeshContours( const Mesh& mesh, const std::vector<MeshTriPoint>& surfaceLine,
145 const std::function<float(int)>& offsetAtPoint, SearchPathSettings searchSettings = {});
146
147}
std::vector< OneMeshContour > OneMeshContours
Special data type for MR::cutMesh.
Definition MRIntersectionContour.h:13
MRMESH_API CutMeshResult cutMesh(Mesh &mesh, const OneMeshContours &contours, const CutMeshParameters &params={})
Cuts mesh by given contours.
MRMESH_API Expected< OneMeshContours > convertMeshTriPointsSurfaceOffsetToMeshContours(const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, float offset, SearchPathSettings searchSettings={})
Makes continuous contour by iso-line from mesh tri points, if first and last meshTriPoint is the same...
HashMap< UndirectedEdgeId, int > map
Definition MRContoursCut.h:24
const AffineXf3f * cont2mesh
if set - used to transform contours form its local space to mesh local space
Definition MRContoursCut.h:111
const SortIntersectionsData * sortData
Definition MRContoursCut.h:39
UndirectedEdgeBitSet splitEdges
Definition MRContoursCut.h:19
MRMESH_API Expected< FaceBitSet > cutMeshByContours(Mesh &mesh, const Contours3f &contours, const AffineXf3f &xf={})
enum MR::CutMeshParameters::ForceFill None
std::vector< EdgePath > resultCut
Paths of new edges on mesh, they represent same contours as input, but already cut.
Definition MRContoursCut.h:64
MRMESH_API Expected< FaceBitSet > cutMeshByContour(Mesh &mesh, const Contour3f &contour, const AffineXf3f &xf={})
tl::expected< T, E > Expected
Definition MRExpected.h:31
FaceMap * new2OldMap
This is optional output - map from newly generated faces to old faces (N-1)
Definition MRContoursCut.h:41
Vector3f direction
direction of projection (in mesh space)
Definition MRContoursCut.h:108
MRMESH_API Expected< std::vector< EdgePath > > cutMeshByProjection(Mesh &mesh, const Contours3f &contours, const CutByProjectionSettings &settings)
Performs orthographic projection with of given contours to mesh and cut result lines,...
FaceBitSet fbsWithContourIntersections
Definition MRContoursCut.h:67
NewEdgesMap * new2oldEdgesMap
Optional output map for each new edge introduced after cut maps edge from old topology or old face.
Definition MRContoursCut.h:54
ForceFill
Definition MRContoursCut.h:47
@ Good
< if bad faces occur does not fill anything
@ All
< fills all faces except bad ones
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Settings structurer for cutMeshByProjection function.
Definition MRContoursCut.h:106
Parameters of MR::cutMesh.
Definition MRMesh.h:23
Definition MRContoursCut.h:16
Geo path search settings.
Definition MROneMeshContours.h:87
Special data to sort intersections more accurate.
Definition MROneMeshContours.h:17