MeshLib C Docs
Loading...
Searching...
No Matches
MRPolyline2Collide.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/exports.h>
4
5#include <stdbool.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11typedef struct MR_AffineXf2f MR_AffineXf2f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
12typedef struct MR_Polyline2 MR_Polyline2; // Defined in `#include <MRCMesh/MRPolyline.h>`.
13typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
14typedef struct MR_std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet MR_std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMisc/std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet.h>`.
15typedef struct MR_std_vector_MR_EdgePointPair MR_std_vector_MR_EdgePointPair; // Defined in `#include <MRCMisc/std_vector_MR_EdgePointPair.h>`.
16typedef struct MR_std_vector_MR_UndirectedEdgeUndirectedEdge MR_std_vector_MR_UndirectedEdgeUndirectedEdge; // Defined in `#include <MRCMisc/std_vector_MR_UndirectedEdgeUndirectedEdge.h>`.
17
18
30MRC_API MR_std_vector_MR_EdgePointPair *MR_findCollidingEdgePairs(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A, const bool *firstIntersectionOnly);
31
43MRC_API MR_std_vector_MR_UndirectedEdgeUndirectedEdge *MR_findCollidingEdges(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A, const bool *firstIntersectionOnly);
44
55
61
67
73
83
84#ifdef __cplusplus
85} // extern "C"
86#endif
struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
Definition MRAABBTreeBase.h:29
struct MR_Polyline2 MR_Polyline2
Definition MRAABBTreePolyline.h:15
struct MR_std_vector_MR_EdgePointPair MR_std_vector_MR_EdgePointPair
Definition MRPolyline2Collide.h:15
MRC_API MR_std_vector_MR_EdgePointPair * MR_findCollidingEdgePairs(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A, const bool *firstIntersectionOnly)
finds all pairs of colliding edges from two 2d polylines
MRC_API MR_std_vector_MR_UndirectedEdgeUndirectedEdge * MR_findSelfCollidingEdges(const MR_Polyline2 *polyline)
MRC_API bool MR_isInside_MR_Polyline2(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A)
checks that arbitrary 2d polyline A is inside of closed 2d polyline B
struct MR_std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet MR_std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet
Definition MRPolyline2Collide.h:14
struct MR_std_vector_MR_UndirectedEdgeUndirectedEdge MR_std_vector_MR_UndirectedEdgeUndirectedEdge
Definition MRPolyline2Collide.h:16
MRC_API MR_std_vector_MR_UndirectedEdgeUndirectedEdge * MR_findCollidingEdges(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A, const bool *firstIntersectionOnly)
finds all pairs of colliding edges from two 2d polylines
MRC_API MR_UndirectedEdgeBitSet * MR_findSelfCollidingEdgesBS(const MR_Polyline2 *polyline)
MRC_API MR_std_vector_MR_EdgePointPair * MR_findSelfCollidingEdgePairs(const MR_Polyline2 *polyline)
MRC_API MR_std_pair_MR_UndirectedEdgeBitSet_MR_UndirectedEdgeBitSet * MR_findCollidingEdgesBitsets(const MR_Polyline2 *a, const MR_Polyline2 *b, const MR_AffineXf2f *rigidB2A)
finds bitset per polyline with colliding edges
#define MRC_API
Definition exports.h:11
Definition MRAffineXf.h:20