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.