MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMeshC/MRMeshCollidePrecise.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include "MRId.h"
5#include "MRMeshPart.h"
7#include "MRVector.h"
8
10
17
18MRMESHC_API bool mrEdgeTriEq( const MREdgeTri* a, const MREdgeTri* b );
19
20MR_VECTOR_DECL( EdgeTri )
21
22typedef struct MRFlaggedTri
23{
24 unsigned int isEdgeATriB : 1;
25 unsigned int face : 31;
27
33
34MR_VECTOR_DECL( VarEdgeTri )
35
36
37typedef MRVectorVarEdgeTri MRPreciseCollisionResult;
38
45 const MRConvertToIntVector* conv,
46 const MRAffineXf3f* rigidB2A,
47 bool anyIntersection );
48
54 const MRAffineXf3f* rigidB2A );
55
MRMESHC_API bool mrEdgeTriEq(const MREdgeTri *a, const MREdgeTri *b)
struct MRFlaggedTri MRFlaggedTri
MRMESHC_API MRCoordinateConverters mrGetVectorConverters(const MRMeshPart *a, const MRMeshPart *b, const MRAffineXf3f *rigidB2A)
creates simple converters from Vector3f to Vector3i and back in mesh parts area range
MRVectorVarEdgeTri MRPreciseCollisionResult
each edge is directed to have its origin inside and its destination outside of the other mesh
Definition MRMeshC/MRMeshCollidePrecise.h:37
struct MRVarEdgeTri MRVarEdgeTri
MR_EXTERN_C_BEGIN struct MREdgeTri MREdgeTri
edge from one mesh and triangle from another mesh
MRMESHC_API MRPreciseCollisionResult * mrFindCollidingEdgeTrisPrecise(const MRMeshPart *a, const MRMeshPart *b, const MRConvertToIntVector *conv, const MRAffineXf3f *rigidB2A, bool anyIntersection)
finds all pairs of colliding edges from one mesh and triangle from another mesh
#define MR_EXTERN_C_BEGIN
Definition MRMeshC/MRMeshFwd.h:26
#define MR_EXTERN_C_END
Definition MRMeshC/MRMeshFwd.h:27
#define MRMESHC_API
Definition MRMeshC/MRMeshFwd.h:19
typedefMR_EXTERN_C_BEGIN struct MRConvertToIntVector MRConvertToIntVector
float-to-int coordinate converter
Definition MRMeshC/MRPrecisePredicates3.h:8
#define MR_VECTOR_DECL(Type)
Definition MRMeshC/MRVector.h:31
affine transformation: y = A*x + b, where A in VxV, and b in V
Definition MRMeshC/MRAffineXf.h:10
this struct contains coordinate converters float-int-float
Definition MRMeshC/MRPrecisePredicates3.h:21
edge index
Definition MRMeshC/MRId.h:8
edge from one mesh and triangle from another mesh
Definition MRMeshC/MRMeshCollidePrecise.h:13
MREdgeId edge
Definition MRMeshC/MRMeshCollidePrecise.h:14
MRFaceId tri
Definition MRMeshC/MRMeshCollidePrecise.h:15
face index
Definition MRMeshC/MRId.h:12
Definition MRMeshC/MRMeshCollidePrecise.h:23
unsigned int isEdgeATriB
Definition MRMeshC/MRMeshCollidePrecise.h:24
unsigned int face
Definition MRMeshC/MRMeshCollidePrecise.h:25
stores reference on whole mesh (if region is NULL) or on its part (if region pointer is valid)
Definition MRMeshC/MRMeshPart.h:9
Definition MRMeshC/MRMeshCollidePrecise.h:29
MREdgeId edge
Definition MRMeshC/MRMeshCollidePrecise.h:30
MRFlaggedTri flaggedTri
Definition MRMeshC/MRMeshCollidePrecise.h:31