libigl v2.5.0
Loading...
Searching...
No Matches
per_edge_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) 2014 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_EDGE_NORMALS_H
9#define IGL_PER_EDGE_NORMALS_H
10#include "igl_inline.h"
11#include <Eigen/Core>
12namespace igl
13{
36 template <
37 typename DerivedV,
38 typename DerivedF,
39 typename DerivedFN,
40 typename DerivedN,
41 typename DerivedE,
42 typename DerivedEMAP>
44 const Eigen::MatrixBase<DerivedV>& V,
45 const Eigen::MatrixBase<DerivedF>& F,
46 const PerEdgeNormalsWeightingType weight,
47 const Eigen::MatrixBase<DerivedFN>& FN,
48 Eigen::PlainObjectBase<DerivedN> & N,
49 Eigen::PlainObjectBase<DerivedE> & E,
50 Eigen::PlainObjectBase<DerivedEMAP> & EMAP);
52 template <
53 typename DerivedV,
54 typename DerivedF,
55 typename DerivedN,
56 typename DerivedE,
57 typename DerivedEMAP>
59 const Eigen::MatrixBase<DerivedV>& V,
60 const Eigen::MatrixBase<DerivedF>& F,
61 const PerEdgeNormalsWeightingType weight,
62 Eigen::PlainObjectBase<DerivedN> & N,
63 Eigen::PlainObjectBase<DerivedE> & E,
64 Eigen::PlainObjectBase<DerivedEMAP> & EMAP);
66 template <
67 typename DerivedV,
68 typename DerivedF,
69 typename DerivedN,
70 typename DerivedE,
71 typename DerivedEMAP>
73 const Eigen::MatrixBase<DerivedV>& V,
74 const Eigen::MatrixBase<DerivedF>& F,
75 Eigen::PlainObjectBase<DerivedN> & N,
76 Eigen::PlainObjectBase<DerivedE> & E,
77 Eigen::PlainObjectBase<DerivedEMAP> & EMAP);
78}
79
80#ifndef IGL_STATIC_LIBRARY
81# include "per_edge_normals.cpp"
82#endif
83
84#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
PerEdgeNormalsWeightingType
Weighting schemes for per edge normals.
Definition per_edge_normals.h:16
@ NUM_PER_EDGE_NORMALS_WEIGHTING_TYPE
Total number of weighting types.
Definition per_edge_normals.h:24
@ PER_EDGE_NORMALS_WEIGHTING_TYPE_AREA
Incident face normals are averaged weighted by area.
Definition per_edge_normals.h:20
@ PER_EDGE_NORMALS_WEIGHTING_TYPE_DEFAULT
Area weights.
Definition per_edge_normals.h:22
@ PER_EDGE_NORMALS_WEIGHTING_TYPE_UNIFORM
Incident face normals have uniform influence on edge normal.
Definition per_edge_normals.h:18
void per_edge_normals(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const PerEdgeNormalsWeightingType weight, const Eigen::MatrixBase< DerivedFN > &FN, Eigen::PlainObjectBase< DerivedN > &N, Eigen::PlainObjectBase< DerivedE > &E, Eigen::PlainObjectBase< DerivedEMAP > &EMAP)
Compute face normals via vertex position list, face list.