MeshLib C++ Docs
Loading...
Searching...
No Matches
MRIntersectionContour.h
Go to the documentation of this file.
1#pragma once
2
4#include "MRPch/MRBindingMacros.h"
5
6namespace MR
7{
10
11
12struct OneMeshContour;
13using OneMeshContours = std::vector<OneMeshContour>;
14
15using ContinuousContour = std::vector<VarEdgeTri>;
16using ContinuousContours = std::vector<ContinuousContour>;
17
31MRMESH_API ContinuousContours orderIntersectionContours( const MeshTopology& topologyA, const MeshTopology& topologyB, const PreciseCollisionResult& intersections );
32
49MRMESH_API ContinuousContours orderSelfIntersectionContours( const MeshTopology& topology, const std::vector<EdgeTri>& intersections );
50
52[[deprecated( "Use getOneMeshIntersectionContours")]] MRMESH_API MR_BIND_IGNORE Contours3f extractIntersectionContours( const Mesh& meshA, const Mesh& meshB, const ContinuousContours& orientedContours,
53const CoordinateConverters& converters, const AffineXf3f* rigidB2A = nullptr );
54
56MRMESH_API bool isClosed( const ContinuousContour& contour );
57
61MRMESH_API std::vector<int> detectLoneContours( const ContinuousContours& contours, bool ignoreOpen = false );
62
67MRMESH_API void removeLoneDegeneratedContours( const MeshTopology& edgesTopology,
68 OneMeshContours& faceContours, OneMeshContours& edgeContours );
69
72MRMESH_API void removeLoneContours( ContinuousContours& contours, bool ignoreOpen = false );
73
74}
Definition MRMeshTopology.h:22
std::vector< VarEdgeTri > PreciseCollisionResult
Definition MRMeshCollidePrecise.h:64
std::vector< OneMeshContour > OneMeshContours
Special data type for MR::cutMesh.
Definition MRIntersectionContour.h:13
MRMESH_API void removeLoneContours(ContinuousContours &contours, bool ignoreOpen=false)
MRMESH_API std::vector< int > detectLoneContours(const ContinuousContours &contours, bool ignoreOpen=false)
MRMESH_API bool isClosed(const ContinuousContour &contour)
returns true if contour is closed
std::vector< VarEdgeTri > ContinuousContour
Definition MRIntersectionContour.h:15
MRMESH_API ContinuousContours orderSelfIntersectionContours(const MeshTopology &topology, const std::vector< EdgeTri > &intersections)
MRMESH_API ContinuousContours orderIntersectionContours(const MeshTopology &topologyA, const MeshTopology &topologyB, const PreciseCollisionResult &intersections)
std::vector< ContinuousContour > ContinuousContours
Definition MRIntersectionContour.h:16
std::array< Vector3f, 3 > MR_BIND_IGNORE
Definition MRMeshBuilderTypes.h:13
MRMESH_API MR_BIND_IGNORE Contours3f extractIntersectionContours(const Mesh &meshA, const Mesh &meshB, const ContinuousContours &orientedContours, const CoordinateConverters &converters, const AffineXf3f *rigidB2A=nullptr)
extracts coordinates from two meshes intersection contours
MRMESH_API void removeLoneDegeneratedContours(const MeshTopology &edgesTopology, OneMeshContours &faceContours, OneMeshContours &edgeContours)
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
this struct contains coordinate converters float-int-float
Definition MRPrecisePredicates3.h:61
Definition MRMesh.h:23