29    explicit operator bool()
 const { 
return proj.
face.valid(); }
 
 
   67    const MeshPart& meshPart, 
 
   68    const std::vector<Vector3f>& origins, 
 
   69    const std::vector<Vector3f>& dirs,    
 
   72    float rayStart = 0.0f, 
float rayEnd = FLT_MAX,
 
   73    bool closestIntersect = 
true, 
 
   98    float rayStart = 0.0f, 
float rayEnd = FLT_MAX );
 
  101    double rayStart = 0.0, 
double rayEnd = DBL_MAX );
 
  120    FaceBitSet * fs, UndirectedEdgeBitSet * ues, VertBitSet * vs,
 
  121    std::vector<FaceId> * fsVec = 
nullptr );
 
  129    FaceBitSet * fs, UndirectedEdgeBitSet * ues, VertBitSet * vs,
 
  130    std::vector<FaceId> * fsVec = 
nullptr );
 
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:80
 
Definition MRAABBTree.h:16
 
Definition MRMesh/MRBitSet.h:28
 
MRMESH_API void multiRayMeshIntersect(const MeshPart &meshPart, const std::vector< Vector3f > &origins, const std::vector< Vector3f > &dirs, const MultiRayMeshIntersectResult &result, float rayStart=0.0f, float rayEnd=FLT_MAX, bool closestIntersect=true, const FacePredicate &validFaces={})
 
MRMESH_API MeshIntersectionResult rayMeshIntersect(const MeshPart &meshPart, const Line3f &line, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes< float > *prec=nullptr, bool closestIntersect=true, const FacePredicate &validFaces={})
 
MRMESH_API void xyPlaneMeshIntersect(const MeshPart &meshPart, float zLevel, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr)
 
MRMESH_API MultiMeshIntersectionResult rayMultiMeshAnyIntersect(const std::vector< Line3fMesh > &lineMeshes, float rayStart=0.0f, float rayEnd=FLT_MAX)
 
MRMESH_API void planeMeshIntersect(const MeshPart &meshPart, const Plane3f &plane, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr)
 
std::function< bool(const MeshIntersectionResult &)> MeshIntersectionCallback
Definition MRMeshIntersect.h:105
 
MRMESH_API void rayMeshIntersectAll(const MeshPart &meshPart, const Line3f &line, MeshIntersectionCallback callback, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes< float > *prec=nullptr)
 
Definition MRCameraOrientationPlugin.h:8
 
std::function< bool(FaceId)> FacePredicate
Definition MRMesh/MRMeshFwd.h:555
 
Definition MRMesh/MRMeshFwd.h:499
 
Definition MRMeshIntersect.h:85
 
Line3< T > line
in the reference frame of mesh
Definition MRMeshIntersect.h:86
 
const Mesh * mesh
must be set a valid pointer before use
Definition MRMeshIntersect.h:88
 
const FaceBitSet * region
may remain nullptr, meaning all mesh
Definition MRMeshIntersect.h:90
 
const AABBTree * tree
must be set a valid pointer before use
Definition MRMeshIntersect.h:89
 
IntersectionPrecomputes< T > * prec
set it to a valid pointer for better performance
Definition MRMeshIntersect.h:87
 
Definition MRMeshIntersect.h:18
 
PointOnFace proj
stores intersected face and global coordinates
Definition MRMeshIntersect.h:20
 
float distanceAlongLine
stores the distance from ray origin to the intersection point in direction units
Definition MRMeshIntersect.h:26
 
MeshTriPoint mtp
stores barycentric coordinates
Definition MRMeshIntersect.h:23
 
Definition MRMesh/MRMeshTriPoint.h:23
 
Definition MRMesh/MRMesh.h:23
 
Definition MRMeshIntersect.h:78
 
const Mesh * mesh
the intersection found in this mesh
Definition MRMeshIntersect.h:80
 
Definition MRMeshIntersect.h:53
 
BitSet * intersectingRays
true if the ray has intersection with mesh part, false otherwise
Definition MRMeshIntersect.h:55
 
std::vector< Vector3f > * isectPts
intersection points or NaNs if no intersection
Definition MRMeshIntersect.h:59
 
std::vector< float > * rayDistances
distance along each ray till the intersection point or NaN if no intersection
Definition MRMeshIntersect.h:56
 
std::vector< FaceId > * isectFaces
intersected triangles from mesh
Definition MRMeshIntersect.h:57
 
std::vector< TriPointf > * isectBary
barycentric coordinates of the intersection point within intersected triangle or NaNs if no intersect...
Definition MRMeshIntersect.h:58
 
a point located on some mesh's face
Definition MRMesh/MRPointOnFace.h:11
 
FaceId face
mesh's face containing the point
Definition MRMesh/MRPointOnFace.h:13