MeshLib Documentation
Loading...
Searching...
No Matches
MRMesh/MRIntersectionContour.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace MR
6{
7
8struct OneMeshContour;
9using OneMeshContours = std::vector<OneMeshContour>;
10
12{
13 bool isEdgeATriB{false};
14};
15
16using ContinuousContour = std::vector<VariableEdgeTri>;
17using ContinuousContours = std::vector<ContinuousContour>;
18
19// Combines individual intersections into ordered contours with the properties:
20// a. left of contours on mesh A is inside of mesh B,
21// b. right of contours on mesh B is inside of mesh A,
22// c. each intersected edge has origin inside meshes intersection and destination outside of it
24
25// Detects contours that fully lay inside one triangle
26// returns they indices in contours
27MRMESH_API std::vector<int> detectLoneContours( const ContinuousContours& contours );
28
29// Removes contours with zero area (do not remove if contour is handle on topology)
30// edgesTopology - topology on which contours are represented with edges
31// faceContours - lone contours represented by faces (all intersections are in same mesh A face)
32// edgeContours - lone contours represented by edges (all intersections are in mesh B edges, edgesTopology: meshB.topology)
34 OneMeshContours& faceContours, OneMeshContours& edgeContours );
35
36// Removes contours that fully lay inside one triangle from the contours
38
39}
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
Definition MRMesh/MRMeshTopology.h:18
std::vector< OneMeshContour > OneMeshContours
Special data type for MR::cutMesh.
Definition MRMesh/MRContoursCut.h:48
Definition MRCameraOrientationPlugin.h:8
std::vector< VariableEdgeTri > ContinuousContour
Definition MRMesh/MRIntersectionContour.h:16
MRMESH_API std::vector< int > detectLoneContours(const ContinuousContours &contours)
MRMESH_API void removeLoneContours(ContinuousContours &contours)
MRMESH_API ContinuousContours orderIntersectionContours(const MeshTopology &topologyA, const MeshTopology &topologyB, const PreciseCollisionResult &intersections)
std::vector< ContinuousContour > ContinuousContours
Definition MRMesh/MRIntersectionContour.h:17
MRMESH_API void removeLoneDegeneratedContours(const MeshTopology &edgesTopology, OneMeshContours &faceContours, OneMeshContours &edgeContours)
edge from one mesh and triangle from another mesh
Definition MRMesh/MRMeshCollidePrecise.h:17
Definition MRMesh/MRMeshCollidePrecise.h:30
Definition MRMesh/MRIntersectionContour.h:12
bool isEdgeATriB
Definition MRMesh/MRIntersectionContour.h:13