9#ifndef IGL_COPYLET_CGAL_CLOSEST_FACET_H
10#define IGL_COPYLET_CGAL_CLOSEST_FACET_H
12#include "../../igl_inline.h"
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>
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<
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);
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);
105 typename DerivedEMAP,
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);
125 typename DerivedEMAP,
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<
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);
155#ifndef IGL_STATIC_LIBRARY
156#include "closest_facet.cpp"
#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.