libigl v2.5.0
Loading...
Searching...
No Matches
per_corner_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) 2021 Alec Jacobson <alecjacobson@gmail.com>
4// Copyright (C) 2013 Alec Jacobson <alecjacobson@gmail.com>
5//
6// This Source Code Form is subject to the terms of the Mozilla Public License
7// v. 2.0. If a copy of the MPL was not distributed with this file, You can
8// obtain one at http://mozilla.org/MPL/2.0/.
9#ifndef IGL_PER_CORNER_NORMALS_H
10#define IGL_PER_CORNER_NORMALS_H
11#include "igl_inline.h"
12#include <Eigen/Core>
13#include <vector>
14
15namespace igl
16{
26 template <
27 typename DerivedV,
28 typename DerivedF,
29 typename DerivedCN>
31 const Eigen::MatrixBase<DerivedV> & V,
32 const Eigen::MatrixBase<DerivedF> & F,
33 const typename DerivedV::Scalar corner_threshold_degrees,
34 Eigen::PlainObjectBase<DerivedCN> & CN);
44 template <
45 typename DerivedV,
46 typename DerivedF,
47 typename DerivedVF,
48 typename DerivedNI,
49 typename DerivedCN>
51 const Eigen::MatrixBase<DerivedV> & V,
52 const Eigen::MatrixBase<DerivedF> & F,
53 const typename DerivedV::Scalar corner_threshold_degrees,
54 const Eigen::MatrixBase<DerivedVF> & VF,
55 const Eigen::MatrixBase<DerivedNI> & NI,
56 Eigen::PlainObjectBase<DerivedCN> & CN);
62 template <
63 typename DerivedV,
64 typename DerivedF,
65 typename DerivedCI,
66 typename DerivedCC,
67 typename DerivedCN>
69 const Eigen::MatrixBase<DerivedV> & V,
70 const Eigen::MatrixBase<DerivedF> & F,
71 const Eigen::MatrixBase<DerivedCI> & CI,
72 const Eigen::MatrixBase<DerivedCC> & CC,
73 Eigen::PlainObjectBase<DerivedCN> & CN);
81 template <typename DerivedNV, typename DerivedNF, typename DerivedCN>
83 const Eigen::MatrixBase<DerivedNV> & NV,
84 const Eigen::MatrixBase<DerivedNF> & NF,
85 Eigen::PlainObjectBase<DerivedCN> & CN);
99 template <
100 typename DerivedV,
101 typename DerivedI,
102 typename DerivedC,
103 typename DerivedN,
104 typename DerivedVV,
105 typename DerivedFF,
106 typename DerivedJ,
107 typename DerivedNN>
109 const Eigen::MatrixBase<DerivedV> & V,
110 const Eigen::MatrixBase<DerivedI> & I,
111 const Eigen::MatrixBase<DerivedC> & C,
112 const typename DerivedV::Scalar corner_threshold_degrees,
113 Eigen::PlainObjectBase<DerivedN> & N,
114 Eigen::PlainObjectBase<DerivedVV> & VV,
115 Eigen::PlainObjectBase<DerivedFF> & FF,
116 Eigen::PlainObjectBase<DerivedJ> & J,
117 Eigen::PlainObjectBase<DerivedNN> & NN);
118}
119
120#ifndef IGL_STATIC_LIBRARY
121# include "per_corner_normals.cpp"
122#endif
123
124#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void per_corner_normals(const Eigen::MatrixBase< DerivedV > &V, const Eigen::MatrixBase< DerivedF > &F, const typename DerivedV::Scalar corner_threshold_degrees, Eigen::PlainObjectBase< DerivedCN > &CN)
Compute per corner normals for a triangle mesh by computing the area-weighted average of normals at i...