libigl v2.5.0
Loading...
Searching...
No Matches
ambient_occlusion.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_EMBREE_AMBIENT_OCCLUSION_H
9#define IGL_EMBREE_AMBIENT_OCCLUSION_H
10#include "../igl_inline.h"
11#include <Eigen/Core>
12namespace igl
13{
14 namespace embree
15 {
24 template <
25 typename DerivedV,
26 typename DerivedF,
27 typename DerivedP,
28 typename DerivedN,
29 typename DerivedS >
31 const Eigen::MatrixBase<DerivedV> & V,
32 const Eigen::MatrixBase<DerivedF> & F,
33 const Eigen::MatrixBase<DerivedP> & P,
34 const Eigen::MatrixBase<DerivedN> & N,
35 const int num_samples,
36 Eigen::PlainObjectBase<DerivedS> & S);
43 // Forward define
45 template <
46 typename DerivedP,
47 typename DerivedN,
48 typename DerivedS >
50 const EmbreeIntersector & ei,
51 const Eigen::MatrixBase<DerivedP> & P,
52 const Eigen::MatrixBase<DerivedN> & N,
53 const int num_samples,
54 Eigen::PlainObjectBase<DerivedS> & S);
55 }
56};
57#ifndef IGL_STATIC_LIBRARY
58# include "ambient_occlusion.cpp"
59#endif
60
61#endif
Simple class to wrap Embree's ray tracing functionality.
Definition EmbreeIntersector.h:36
#define IGL_INLINE
Definition igl_inline.h:15
void ambient_occlusion(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const Eigen::MatrixBase< DerivedP > &P, const Eigen::MatrixBase< DerivedN > &N, const int num_samples, Eigen::PlainObjectBase< DerivedS > &S)
Compute ambient occlusion per given point.
Definition AABB.h:17