libigl v2.5.0
Loading...
Searching...
No Matches
per_vertex_normals.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_PER_VERTEX_NORMALS_H
9#define IGL_PER_VERTEX_NORMALS_H
10#include "igl_inline.h"
11#include <Eigen/Core>
12namespace igl
13{
37 template <
38 typename DerivedV,
39 typename DerivedF,
40 typename DerivedN>
42 const Eigen::MatrixBase<DerivedV>& V,
43 const Eigen::MatrixBase<DerivedF>& F,
45 Eigen::PlainObjectBase<DerivedN> & N);
47 template <
48 typename DerivedV,
49 typename DerivedF,
50 typename DerivedN>
52 const Eigen::MatrixBase<DerivedV>& V,
53 const Eigen::MatrixBase<DerivedF>& F,
54 Eigen::PlainObjectBase<DerivedN> & N);
58 template <typename DerivedV, typename DerivedF, typename DerivedFN, typename DerivedN>
60 const Eigen::MatrixBase<DerivedV>& V,
61 const Eigen::MatrixBase<DerivedF>& F,
62 const PerVertexNormalsWeightingType weighting,
63 const Eigen::MatrixBase<DerivedFN>& FN,
64 Eigen::PlainObjectBase<DerivedN> & N);
66 template <
67 typename DerivedV,
68 typename DerivedF,
69 typename DerivedFN,
70 typename DerivedN>
72 const Eigen::MatrixBase<DerivedV>& V,
73 const Eigen::MatrixBase<DerivedF>& F,
74 const Eigen::MatrixBase<DerivedFN>& FN,
75 Eigen::PlainObjectBase<DerivedN> & N);
76}
77
78#ifndef IGL_STATIC_LIBRARY
79# include "per_vertex_normals.cpp"
80#endif
81
82#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void per_vertex_normals(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const igl::PerVertexNormalsWeightingType weighting, Eigen::PlainObjectBase< DerivedN > &N)
Compute vertex normals via vertex position list, face list.
PerVertexNormalsWeightingType
Weighting schemes for computing per-vertex normals.
Definition per_vertex_normals.h:19
@ PER_VERTEX_NORMALS_WEIGHTING_TYPE_UNIFORM
Incident face normals have uniform influence on vertex normal.
Definition per_vertex_normals.h:21
@ PER_VERTEX_NORMALS_WEIGHTING_TYPE_ANGLE
Incident face normals are averaged weighted by incident angle of vertex.
Definition per_vertex_normals.h:25
@ PER_VERTEX_NORMALS_WEIGHTING_TYPE_AREA
Incident face normals are averaged weighted by area.
Definition per_vertex_normals.h:23
@ PER_VERTEX_NORMALS_WEIGHTING_TYPE_DEFAULT
Area weights.
Definition per_vertex_normals.h:27
@ NUM_PER_VERTEX_NORMALS_WEIGHTING_TYPE
Total number of weighting types.
Definition per_vertex_normals.h:29