8#ifndef IGL_SIGNED_DISTANCE_H 
    9#define IGL_SIGNED_DISTANCE_H 
   62    const Eigen::MatrixBase<DerivedP> & P,
 
   63    const Eigen::MatrixBase<DerivedV> & V,
 
   64    const Eigen::MatrixBase<DerivedF> & F,
 
   66    const typename DerivedV::Scalar lower_bound,
 
   67    const typename DerivedV::Scalar upper_bound,
 
   68    Eigen::PlainObjectBase<DerivedS> & S,
 
   69    Eigen::PlainObjectBase<DerivedI> & I,
 
   70    Eigen::PlainObjectBase<DerivedC> & C,
 
   71    Eigen::PlainObjectBase<DerivedN> & N);
 
   82    const Eigen::MatrixBase<DerivedP> & P,
 
   83    const Eigen::MatrixBase<DerivedV> & V,
 
   84    const Eigen::MatrixBase<DerivedF> & F,
 
   86    Eigen::PlainObjectBase<DerivedS> & S,
 
   87    Eigen::PlainObjectBase<DerivedI> & I,
 
   88    Eigen::PlainObjectBase<DerivedC> & C,
 
   89    Eigen::PlainObjectBase<DerivedN> & N);
 
  109    typename DerivedEMAP,
 
  113    const Eigen::MatrixBase<DerivedV> & V,
 
  114    const Eigen::MatrixBase<DerivedF> & F,
 
  115    const Eigen::MatrixBase<DerivedFN> & FN,
 
  116    const Eigen::MatrixBase<DerivedVN> & VN,
 
  117    const Eigen::MatrixBase<DerivedEN> & EN,
 
  118    const Eigen::MatrixBase<DerivedEMAP> & EMAP,
 
  119    const Eigen::MatrixBase<Derivedq> & q);
 
  130    typename DerivedEMAP,
 
  136    const Eigen::MatrixBase<DerivedP> & P,
 
  137    const Eigen::MatrixBase<DerivedV> & V,
 
  138    const Eigen::MatrixBase<DerivedF> & F,
 
  140    const Eigen::MatrixBase<DerivedFN> & FN,
 
  141    const Eigen::MatrixBase<DerivedVN> & VN,
 
  142    const Eigen::MatrixBase<DerivedEN> & EN,
 
  143    const Eigen::MatrixBase<DerivedEMAP> & EMAP,
 
  144    Eigen::PlainObjectBase<DerivedS> & S,
 
  145    Eigen::PlainObjectBase<DerivedI> & I,
 
  146    Eigen::PlainObjectBase<DerivedC> & C,
 
  147    Eigen::PlainObjectBase<DerivedN> & N);
 
  163    typename DerivedEMAP,
 
  170    const Eigen::MatrixBase<DerivedV> & V,
 
  171    const Eigen::MatrixBase<DerivedF> & F,
 
  172    const Eigen::MatrixBase<DerivedFN> & FN,
 
  173    const Eigen::MatrixBase<DerivedVN> & VN,
 
  174    const Eigen::MatrixBase<DerivedEN> & EN,
 
  175    const Eigen::MatrixBase<DerivedEMAP> & EMAP,
 
  176    const Eigen::MatrixBase<Derivedq> & q,
 
  180    Eigen::PlainObjectBase<Derivedc> & c,
 
  181    Eigen::PlainObjectBase<Derivedn> & n);
 
  194    const Eigen::MatrixBase<DerivedV> & V,
 
  195    const Eigen::MatrixBase<DerivedE> & E,
 
  196    const Eigen::MatrixBase<DerivedEN> & EN,
 
  197    const Eigen::MatrixBase<DerivedVN> & VN,
 
  198    const Eigen::MatrixBase<Derivedq> & q,
 
  202    Eigen::PlainObjectBase<Derivedc> & c,
 
  203    Eigen::PlainObjectBase<Derivedn> & n);
 
  218    const Eigen::MatrixBase<DerivedV> & V,
 
  219    const Eigen::MatrixBase<DerivedF> & F,
 
  221    const Eigen::MatrixBase<Derivedq> & q);
 
  235    const Eigen::MatrixBase<DerivedV> & V,
 
  236    const Eigen::MatrixBase<DerivedF> & F,
 
  238    const Eigen::MatrixBase<Derivedq> & q,
 
  242    Eigen::PlainObjectBase<Derivedc> & c);
 
  252    const Eigen::MatrixBase<DerivedV> & V,
 
  253    const Eigen::MatrixBase<DerivedF> & F,
 
  254    const Eigen::MatrixBase<Derivedq> & q,
 
  258    Eigen::PlainObjectBase<Derivedc> & c);
 
  284    const Eigen::MatrixBase<DerivedP> & P,
 
  285    const Eigen::MatrixBase<DerivedV> & V,
 
  286    const Eigen::MatrixBase<DerivedF> & F,
 
  288    const igl::FastWindingNumberBVH & fwn_bvh,
 
  289    Eigen::PlainObjectBase<DerivedS> & S
 
  307    const Eigen::MatrixBase<Derivedq> & q,
 
  308    const Eigen::MatrixBase<DerivedV> & V,
 
  309    const Eigen::MatrixBase<DerivedF> & F,
 
  311    const igl::FastWindingNumberBVH & fwn_bvh
 
  315#ifndef IGL_STATIC_LIBRARY 
  316#  include "signed_distance.cpp" 
Implementation of semi-general purpose axis-aligned bounding box hierarchy.
Definition AABB.h:30
 
Class for building an AABB tree to implement the divide and conquer algorithm described in [Jacobson ...
Definition WindingNumberAABB.h:26
 
#define IGL_INLINE
Definition igl_inline.h:15
 
void signed_distance(const Eigen::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const SignedDistanceType sign_type, const typename DerivedV::Scalar lower_bound, const typename DerivedV::Scalar upper_bound, Eigen::PlainObjectBase< DerivedS > &S, Eigen::PlainObjectBase< DerivedI > &I, Eigen::PlainObjectBase< DerivedC > &C, Eigen::PlainObjectBase< DerivedN > &N)
Computes signed distance to a mesh.
 
DerivedV::Scalar signed_distance_pseudonormal(const AABB< DerivedV, 3 > &tree, const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedFN > &FN, const Eigen::MatrixBase< DerivedVN > &VN, const Eigen::MatrixBase< DerivedEN > &EN, const Eigen::MatrixBase< DerivedEMAP > &EMAP, const Eigen::MatrixBase< Derivedq > &q)
Computes signed distance to mesh using pseudonormal with precomputed AABB tree and edge/vertice norma...
 
DerivedV::Scalar signed_distance_winding_number(const AABB< DerivedV, 3 > &tree, const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const igl::WindingNumberAABB< Derivedq, DerivedV, DerivedF > &hier, const Eigen::MatrixBase< Derivedq > &q)
Computes signed distance to mesh using winding number with precomputed AABB.
 
void signed_distance_fast_winding_number(const Eigen::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const AABB< DerivedV, 3 > &tree, const igl::FastWindingNumberBVH &fwn_bvh, Eigen::PlainObjectBase< DerivedS > &S)
Calculates signed distance at query points P, using fast winding number for sign.
 
SignedDistanceType
Types of signing a distance field.
Definition signed_distance.h:21
 
@ SIGNED_DISTANCE_TYPE_WINDING_NUMBER
Use winding number [Jacobson, Kavan Sorking-Hornug 2013].
Definition signed_distance.h:25
 
@ SIGNED_DISTANCE_TYPE_UNSIGNED
Unsigned (absolute value)
Definition signed_distance.h:29
 
@ SIGNED_DISTANCE_TYPE_DEFAULT
Default.
Definition signed_distance.h:27
 
@ NUM_SIGNED_DISTANCE_TYPE
Total number of signed distance types.
Definition signed_distance.h:33
 
@ SIGNED_DISTANCE_TYPE_FAST_WINDING_NUMBER
Use Fast winding number [Barill, Dickson, Schmidt, Levin, Jacobson 2018].
Definition signed_distance.h:31
 
@ SIGNED_DISTANCE_TYPE_PSEUDONORMAL
Use fast pseudo-normal test [Bærentzen & Aanæs 2005].
Definition signed_distance.h:23