1#ifndef IGL_FAST_WINDING_NUMBER 
    2#define IGL_FAST_WINDING_NUMBER 
    4#include "FastWindingNumberForSoups.h" 
   45    const Eigen::MatrixBase<DerivedP>& P,
 
   46    const Eigen::MatrixBase<DerivedN>& N,
 
   47    const Eigen::MatrixBase<DerivedA>& A,
 
   48    const std::vector<std::vector<Index> > & point_indices,
 
   49    const Eigen::MatrixBase<DerivedCH>& CH,
 
   50    const int expansion_order,
 
   51    Eigen::PlainObjectBase<DerivedCM>& CM,
 
   52    Eigen::PlainObjectBase<DerivedR>& R,
 
   53    Eigen::PlainObjectBase<DerivedEC>& EC);
 
   89    const Eigen::MatrixBase<DerivedP>& P,
 
   90    const Eigen::MatrixBase<DerivedN>& N,
 
   91    const Eigen::MatrixBase<DerivedA>& A,
 
   92    const std::vector<std::vector<Index> > & point_indices,
 
   93    const Eigen::MatrixBase<DerivedCH>& CH,
 
   94    const Eigen::MatrixBase<DerivedCM>& CM,
 
   95    const Eigen::MatrixBase<DerivedR>& R,
 
   96    const Eigen::MatrixBase<DerivedEC>& EC,
 
   97    const Eigen::MatrixBase<DerivedQ>& Q,
 
   99    Eigen::PlainObjectBase<DerivedWN>& WN);
 
  112    const Eigen::MatrixBase<DerivedP>& P,
 
  113    const Eigen::MatrixBase<DerivedN>& N,
 
  114    const Eigen::MatrixBase<DerivedA>& A,
 
  115    const Eigen::MatrixBase<DerivedQ>& Q,
 
  116    const int expansion_order,
 
  118    Eigen::PlainObjectBase<DerivedWN>& WN);
 
  127    const Eigen::MatrixBase<DerivedP>& P,
 
  128    const Eigen::MatrixBase<DerivedN>& N,
 
  129    const Eigen::MatrixBase<DerivedA>& A,
 
  130    const Eigen::MatrixBase<DerivedQ>& Q,
 
  131    Eigen::PlainObjectBase<DerivedWN>& WN);
 
  133  namespace FastWindingNumber { 
 
  135    namespace HDK_Sample{ 
 
  137      template <
typename T1, 
typename T2> 
class UT_SolidAngle;} }
 
  140  struct FastWindingNumberBVH {
 
  142    FastWindingNumber::HDK_Sample::UT_SolidAngle<float,float> ut_solid_angle;
 
  145    std::vector<FastWindingNumber::HDK_Sample::UT_Vector3T<float> > U;
 
  161    const Eigen::MatrixBase<DerivedV> & V,
 
  162    const Eigen::MatrixBase<DerivedF> & F,
 
  163    const Eigen::MatrixBase<DerivedQ> & Q,
 
  164    Eigen::PlainObjectBase<DerivedW> & W);
 
  177    const Eigen::MatrixBase<DerivedV> & V,
 
  178    const Eigen::MatrixBase<DerivedF> & F,
 
  180    FastWindingNumberBVH & fwn_bvh);
 
  192    const FastWindingNumberBVH & fwn_bvh,
 
  193    const float accuracy_scale,
 
  194    const Eigen::MatrixBase<DerivedQ> & Q,
 
  195    Eigen::PlainObjectBase<DerivedW> & W);
 
  202  template <
typename Derivedp>
 
  204    const FastWindingNumberBVH & fwn_bvh,
 
  205    const float accuracy_scale,
 
  206    const Eigen::MatrixBase<Derivedp> & p);
 
  208#ifndef IGL_STATIC_LIBRARY 
  209#  include "fast_winding_number.cpp" 
#define IGL_INLINE
Definition igl_inline.h:15
 
void fast_winding_number(const Eigen::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedN > &N, const Eigen::MatrixBase< DerivedA > &A, const std::vector< std::vector< Index > > &point_indices, const Eigen::MatrixBase< DerivedCH > &CH, const int expansion_order, Eigen::PlainObjectBase< DerivedCM > &CM, Eigen::PlainObjectBase< DerivedR > &R, Eigen::PlainObjectBase< DerivedEC > &EC)
Generate the precomputation for the fast winding number for point data [Barill et.