8#ifndef IGL_AMBIENT_OCCLUSION_H 
    9#define IGL_AMBIENT_OCCLUSION_H 
   34        const Eigen::Vector3f&,
 
   35        const Eigen::Vector3f&)
 
   37    const Eigen::MatrixBase<DerivedP> & P,
 
   38    const Eigen::MatrixBase<DerivedN> & N,
 
   39    const int num_samples,
 
   40    Eigen::PlainObjectBase<DerivedS> & S);
 
   62    const Eigen::MatrixBase<DerivedV> & V,
 
   63    const Eigen::MatrixBase<DerivedF> & F,
 
   64    const Eigen::MatrixBase<DerivedP> & P,
 
   65    const Eigen::MatrixBase<DerivedN> & N,
 
   66    const int num_samples,
 
   67    Eigen::PlainObjectBase<DerivedS> & S);
 
   84    const Eigen::MatrixBase<DerivedV> & V,
 
   85    const Eigen::MatrixBase<DerivedF> & F,
 
   86    const Eigen::MatrixBase<DerivedP> & P,
 
   87    const Eigen::MatrixBase<DerivedN> & N,
 
   88    const int num_samples,
 
   89    Eigen::PlainObjectBase<DerivedS> & S);
 
   92#ifndef IGL_STATIC_LIBRARY 
   93#  include "ambient_occlusion.cpp" 
Implementation of semi-general purpose axis-aligned bounding box hierarchy.
Definition AABB.h:30
 
#define IGL_INLINE
Definition igl_inline.h:15
 
void ambient_occlusion(const std::function< bool(const Eigen::Vector3f &, const Eigen::Vector3f &) > &shoot_ray, const Eigen::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedN > &N, const int num_samples, Eigen::PlainObjectBase< DerivedS > &S)
Compute ambient occlusion per given point using ray-mesh intersection function handle.