libigl v2.5.0
Loading...
Searching...
No Matches
triangle_triangle_adjacency.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 Daniele Panozzo <daniele.panozzo@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_TRIANGLE_TRIANGLE_ADJACENCY_H
9#define IGL_TRIANGLE_TRIANGLE_ADJACENCY_H
10#include "igl_inline.h"
11#include <Eigen/Core>
12#include <vector>
13
14namespace igl
15{
42 template <typename DerivedF, typename DerivedTT, typename DerivedTTi>
44 const Eigen::MatrixBase<DerivedF>& F,
45 Eigen::PlainObjectBase<DerivedTT>& TT,
46 Eigen::PlainObjectBase<DerivedTTi>& TTi);
48 template <typename DerivedF, typename DerivedTT>
50 const Eigen::MatrixBase<DerivedF>& F,
51 Eigen::PlainObjectBase<DerivedTT>& TT);
58 template <typename DerivedF, typename TTT_type>
60 const Eigen::MatrixBase<DerivedF>& F,
61 std::vector<std::vector<TTT_type> >& TTT);
70 template <typename DerivedF, typename TTT_type, typename DerivedTT>
72 const Eigen::MatrixBase<DerivedF>& F,
73 std::vector<std::vector<TTT_type> >& TTT,
74 Eigen::PlainObjectBase<DerivedTT>& TT);
83 template <typename DerivedF, typename TTT_type, typename DerivedTTi>
85 const Eigen::MatrixBase<DerivedF>& F,
86 std::vector<std::vector<TTT_type> >& TTT,
87 Eigen::PlainObjectBase<DerivedTTi>& TTi);
97 template <
98 typename DerivedF,
99 typename TTIndex,
100 typename TTiIndex>
102 const Eigen::MatrixBase<DerivedF> & F,
103 std::vector<std::vector<std::vector<TTIndex> > > & TT,
104 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
106 template < typename DerivedF, typename TTIndex>
108 const Eigen::MatrixBase<DerivedF> & F,
109 std::vector<std::vector<std::vector<TTIndex> > > & TT);
110 // @private
111 // Wrapper with bool to choose whether to compute TTi (this prototype should
112 // be "hidden").
113 // @param[in] construct_TTi whether to compute TTi
114 template <
115 typename DerivedF,
116 typename TTIndex,
117 typename TTiIndex>
119 const Eigen::MatrixBase<DerivedF> & F,
120 const bool construct_TTi,
121 std::vector<std::vector<std::vector<TTIndex> > > & TT,
122 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
133 template <
134 typename DerivedE,
135 typename DerivedEMAP,
136 typename uE2EType,
137 typename TTIndex,
138 typename TTiIndex>
140 const Eigen::MatrixBase<DerivedE> & E,
141 const Eigen::MatrixBase<DerivedEMAP> & EMAP,
142 const std::vector<std::vector<uE2EType > > & uE2E,
143 const bool construct_TTi,
144 std::vector<std::vector<std::vector<TTIndex> > > & TT,
145 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
153 template <
154 typename DerivedEMAP,
155 typename DeriveduEC,
156 typename DeriveduEE,
157 typename TTIndex,
158 typename TTiIndex>
160 const Eigen::MatrixBase<DerivedEMAP> & EMAP,
161 const Eigen::MatrixBase<DeriveduEC> & uEC,
162 const Eigen::MatrixBase<DeriveduEE> & uEE,
163 const bool construct_TTi,
164 std::vector<std::vector<std::vector<TTIndex> > > & TT,
165 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
166}
167
168#ifndef IGL_STATIC_LIBRARY
169# include "triangle_triangle_adjacency.cpp"
170#endif
171
172#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:18
void triangle_triangle_adjacency_extractTT(const Eigen::MatrixBase< DerivedF > &F, std::vector< std::vector< TTT_type > > &TTT, Eigen::PlainObjectBase< DerivedTT > &TT)
Extract the face adjacencies for triangle_triangle_adjacency.
void triangle_triangle_adjacency_extractTTi(const Eigen::MatrixBase< DerivedF > &F, std::vector< std::vector< TTT_type > > &TTT, Eigen::PlainObjectBase< DerivedTTi > &TTi)
Extract the face adjacencies indices for triangle_triangle_adjacency.
void triangle_triangle_adjacency_preprocess(const Eigen::MatrixBase< DerivedF > &F, std::vector< std::vector< TTT_type > > &TTT)
Preprocessing for triangle_triangle_adjacency.
void triangle_triangle_adjacency(const Eigen::MatrixBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedTT > &TT, Eigen::PlainObjectBase< DerivedTTi > &TTi)
Constructs the triangle-triangle adjacency matrix for a given mesh (V,F).