libigl v2.5.0
Loading...
Searching...
No Matches
find_intersections.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2024 Alec Jacobson alecjacobson@gmail.com
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/
8#ifndef IGL_FAST_FIND_INTERSECTIONS_H
9#define IGL_FAST_FIND_INTERSECTIONS_H
10
11#include "../igl_inline.h"
12#include <Eigen/Core>
13
14namespace igl
15{
16 template <typename DerivedV, int DIM> class AABB;
17 namespace predicates
18 {
32 template <
33 typename DerivedV1,
34 typename DerivedF1,
35 typename DerivedV2,
36 typename DerivedF2,
37 typename DerivedIF,
38 typename DerivedCP>
40 const AABB<DerivedV1,3> & tree1,
41 const Eigen::MatrixBase<DerivedV1> & V1,
42 const Eigen::MatrixBase<DerivedF1> & F1,
43 const Eigen::MatrixBase<DerivedV2> & V2,
44 const Eigen::MatrixBase<DerivedF2> & F2,
45 const bool first_only,
46 Eigen::PlainObjectBase<DerivedIF> & IF,
47 Eigen::PlainObjectBase<DerivedCP> & CP);
50 template <
51 typename DerivedV1,
52 typename DerivedF1,
53 typename DerivedV2,
54 typename DerivedF2,
55 typename DerivedIF,
56 typename DerivedCP>
58 const Eigen::MatrixBase<DerivedV1> & V1,
59 const Eigen::MatrixBase<DerivedF1> & F1,
60 const Eigen::MatrixBase<DerivedV2> & V2,
61 const Eigen::MatrixBase<DerivedF2> & F2,
62 const bool first_only,
63 Eigen::PlainObjectBase<DerivedIF> & IF,
64 Eigen::PlainObjectBase<DerivedCP> & CP);
69 template <
70 typename DerivedV1,
71 typename DerivedF1,
72 typename DerivedV2,
73 typename DerivedF2,
74 typename DerivedIF,
75 typename DerivedCP,
76 typename DerivedEV,
77 typename DerivedEE,
78 typename DerivedEI>
80 const Eigen::MatrixBase<DerivedV1> & V1,
81 const Eigen::MatrixBase<DerivedF1> & F1,
82 const Eigen::MatrixBase<DerivedV2> & V2,
83 const Eigen::MatrixBase<DerivedF2> & F2,
84 Eigen::PlainObjectBase<DerivedIF> & IF,
85 Eigen::PlainObjectBase<DerivedCP> & CP,
86 Eigen::PlainObjectBase<DerivedEV> & EV,
87 Eigen::PlainObjectBase<DerivedEE> & EE,
88 Eigen::PlainObjectBase<DerivedEI> & EI);
89 template <
90 typename DerivedV1,
91 typename DerivedF1,
92 typename DerivedV2,
93 typename DerivedF2,
94 typename DerivedIF,
95 typename DerivedCP,
96 typename DerivedEV,
97 typename DerivedEE,
98 typename DerivedEI>
100 const igl::AABB<DerivedV1,3> & tree1,
101 const Eigen::MatrixBase<DerivedV1> & V1,
102 const Eigen::MatrixBase<DerivedF1> & F1,
103 const Eigen::MatrixBase<DerivedV2> & V2,
104 const Eigen::MatrixBase<DerivedF2> & F2,
105 Eigen::PlainObjectBase<DerivedIF> & IF,
106 Eigen::PlainObjectBase<DerivedCP> & CP,
107 Eigen::PlainObjectBase<DerivedEV> & EV,
108 Eigen::PlainObjectBase<DerivedEE> & EE,
109 Eigen::PlainObjectBase<DerivedEI> & EI);
110 }
111}
112
113#ifndef IGL_STATIC_LIBRARY
114# include "find_intersections.cpp"
115#endif
116
117#endif
118
Implementation of semi-general purpose axis-aligned bounding box hierarchy.
Definition AABB.h:31
#define IGL_INLINE
Definition igl_inline.h:15
Definition cubic_winding_number.h:9
bool find_intersections(const AABB< DerivedV1, 3 > &tree1, const Eigen::MatrixBase< DerivedV1 > &V1, const Eigen::MatrixBase< DerivedF1 > &F1, const Eigen::MatrixBase< DerivedV2 > &V2, const Eigen::MatrixBase< DerivedF2 > &F2, const bool first_only, Eigen::PlainObjectBase< DerivedIF > &IF, Eigen::PlainObjectBase< DerivedCP > &CP)
Identify triangles where two meshes interesect using AABBTree and igl::predicates::triangle_triangle_...
Definition AABB.h:18