libigl v2.5.0
Loading...
Searching...
No Matches
closest_facet.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) 2015 Qingnan Zhou <qnzhou@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//
9#ifndef IGL_COPYLET_CGAL_CLOSEST_FACET_H
10#define IGL_COPYLET_CGAL_CLOSEST_FACET_H
11
12#include "../../igl_inline.h"
13#include <Eigen/Core>
14#include <vector>
15
16#include <CGAL/AABB_tree.h>
17#include <CGAL/AABB_traits.h>
18#include <CGAL/AABB_triangle_primitive.h>
19#include <CGAL/intersections.h>
20#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
21
22namespace igl
23{
24 namespace copyleft
25 {
26 namespace cgal
27 {
48 template<
49 typename DerivedV,
50 typename DerivedF,
51 typename DerivedI,
52 typename DerivedP,
53 typename DerivedEMAP,
54 typename DeriveduEC,
55 typename DeriveduEE,
56 typename Kernel,
57 typename DerivedR,
58 typename DerivedS >
60 const Eigen::PlainObjectBase<DerivedV>& V,
61 const Eigen::PlainObjectBase<DerivedF>& F,
62 const Eigen::PlainObjectBase<DerivedI>& I,
63 const Eigen::PlainObjectBase<DerivedP>& P,
64 const Eigen::PlainObjectBase<DerivedEMAP>& EMAP,
65 const Eigen::PlainObjectBase<DeriveduEC>& uEC,
66 const Eigen::PlainObjectBase<DeriveduEE>& uEE,
67 const std::vector<std::vector<size_t> > & VF,
68 const std::vector<std::vector<size_t> > & VFi,
69 const CGAL::AABB_tree<
70 CGAL::AABB_traits<
71 Kernel,
72 CGAL::AABB_triangle_primitive<
73 Kernel, typename std::vector<
74 typename Kernel::Triangle_3 >::iterator > > > & tree,
75 const std::vector<typename Kernel::Triangle_3 > & triangles,
76 const std::vector<bool> & in_I,
77 Eigen::PlainObjectBase<DerivedR>& R,
78 Eigen::PlainObjectBase<DerivedS>& S);
80 template<
81 typename DerivedV,
82 typename DerivedF,
83 typename DerivedI,
84 typename DerivedP,
85 typename DerivedEMAP,
86 typename DeriveduEC,
87 typename DeriveduEE,
88 typename DerivedR,
89 typename DerivedS >
91 const Eigen::PlainObjectBase<DerivedV>& V,
92 const Eigen::PlainObjectBase<DerivedF>& F,
93 const Eigen::PlainObjectBase<DerivedI>& I,
94 const Eigen::PlainObjectBase<DerivedP>& P,
95 const Eigen::PlainObjectBase<DerivedEMAP>& EMAP,
96 const Eigen::PlainObjectBase<DeriveduEC>& uEC,
97 const Eigen::PlainObjectBase<DeriveduEE>& uEE,
98 Eigen::PlainObjectBase<DerivedR>& R,
99 Eigen::PlainObjectBase<DerivedS>& S);
101 template<
102 typename DerivedV,
103 typename DerivedF,
104 typename DerivedP,
105 typename DerivedEMAP,
106 typename DeriveduEC,
107 typename DeriveduEE,
108 typename DerivedR,
109 typename DerivedS >
111 const Eigen::PlainObjectBase<DerivedV>& V,
112 const Eigen::PlainObjectBase<DerivedF>& F,
113 const Eigen::PlainObjectBase<DerivedP>& P,
114 const Eigen::PlainObjectBase<DerivedEMAP>& EMAP,
115 const Eigen::PlainObjectBase<DeriveduEC>& uEC,
116 const Eigen::PlainObjectBase<DeriveduEE>& uEE,
117 Eigen::PlainObjectBase<DerivedR>& R,
118 Eigen::PlainObjectBase<DerivedS>& S);
120 template<
121 typename DerivedV,
122 typename DerivedF,
123 typename DerivedI,
124 typename DerivedP,
125 typename DerivedEMAP,
126 typename DeriveduEC,
127 typename DeriveduEE,
128 typename Kernel,
129 typename DerivedR,
130 typename DerivedS >
132 const Eigen::PlainObjectBase<DerivedV>& V,
133 const Eigen::PlainObjectBase<DerivedF>& F,
134 const Eigen::PlainObjectBase<DerivedI>& I,
135 const Eigen::PlainObjectBase<DerivedP>& P,
136 const Eigen::PlainObjectBase<DerivedEMAP>& EMAP,
137 const Eigen::PlainObjectBase<DeriveduEC>& uEC,
138 const Eigen::PlainObjectBase<DeriveduEE>& uEE,
139 const std::vector<std::vector<size_t> > & VF,
140 const std::vector<std::vector<size_t> > & VFi,
141 const CGAL::AABB_tree<
142 CGAL::AABB_traits<
143 Kernel,
144 CGAL::AABB_triangle_primitive<
145 Kernel, typename std::vector<
146 typename Kernel::Triangle_3 >::iterator > > > & tree,
147 const std::vector<typename Kernel::Triangle_3 > & triangles,
148 const std::vector<bool> & in_I,
149 Eigen::PlainObjectBase<DerivedR>& R,
150 Eigen::PlainObjectBase<DerivedS>& S);
151 }
152 }
153}
154
155#ifndef IGL_STATIC_LIBRARY
156#include "closest_facet.cpp"
157#endif
158#endif
#define IGL_INLINE
Definition igl_inline.h:15
void closest_facet(const Eigen::PlainObjectBase< DerivedV > &V, const Eigen::PlainObjectBase< DerivedF > &F, const Eigen::PlainObjectBase< DerivedI > &I, const Eigen::PlainObjectBase< DerivedP > &P, const Eigen::PlainObjectBase< DerivedEMAP > &EMAP, const Eigen::PlainObjectBase< DeriveduEC > &uEC, const Eigen::PlainObjectBase< DeriveduEE > &uEE, const std::vector< std::vector< size_t > > &VF, const std::vector< std::vector< size_t > > &VFi, const CGAL::AABB_tree< CGAL::AABB_traits< Kernel, CGAL::AABB_triangle_primitive< Kernel, typename std::vector< typename Kernel::Triangle_3 >::iterator > > > &tree, const std::vector< typename Kernel::Triangle_3 > &triangles, const std::vector< bool > &in_I, Eigen::PlainObjectBase< DerivedR > &R, Eigen::PlainObjectBase< DerivedS > &S)
Determine the closest facet for each of the input points.
Definition AABB.h:17