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{
40 template <typename DerivedF, typename DerivedTT, typename DerivedTTi>
42 const Eigen::MatrixBase<DerivedF>& F,
43 Eigen::PlainObjectBase<DerivedTT>& TT,
44 Eigen::PlainObjectBase<DerivedTTi>& TTi);
46 template <typename DerivedF, typename DerivedTT>
48 const Eigen::MatrixBase<DerivedF>& F,
49 Eigen::PlainObjectBase<DerivedTT>& TT);
56 template <typename DerivedF, typename TTT_type>
58 const Eigen::MatrixBase<DerivedF>& F,
59 std::vector<std::vector<TTT_type> >& TTT);
68 template <typename DerivedF, typename TTT_type, typename DerivedTT>
70 const Eigen::MatrixBase<DerivedF>& F,
71 std::vector<std::vector<TTT_type> >& TTT,
72 Eigen::PlainObjectBase<DerivedTT>& TT);
81 template <typename DerivedF, typename TTT_type, typename DerivedTTi>
83 const Eigen::MatrixBase<DerivedF>& F,
84 std::vector<std::vector<TTT_type> >& TTT,
85 Eigen::PlainObjectBase<DerivedTTi>& TTi);
95 template <
96 typename DerivedF,
97 typename TTIndex,
98 typename TTiIndex>
100 const Eigen::MatrixBase<DerivedF> & F,
101 std::vector<std::vector<std::vector<TTIndex> > > & TT,
102 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
104 template < typename DerivedF, typename TTIndex>
106 const Eigen::MatrixBase<DerivedF> & F,
107 std::vector<std::vector<std::vector<TTIndex> > > & TT);
108 // @private
109 // Wrapper with bool to choose whether to compute TTi (this prototype should
110 // be "hidden").
111 // @param[in] construct_TTi whether to compute TTi
112 template <
113 typename DerivedF,
114 typename TTIndex,
115 typename TTiIndex>
117 const Eigen::MatrixBase<DerivedF> & F,
118 const bool construct_TTi,
119 std::vector<std::vector<std::vector<TTIndex> > > & TT,
120 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
131 template <
132 typename DerivedE,
133 typename DerivedEMAP,
134 typename uE2EType,
135 typename TTIndex,
136 typename TTiIndex>
138 const Eigen::MatrixBase<DerivedE> & E,
139 const Eigen::MatrixBase<DerivedEMAP> & EMAP,
140 const std::vector<std::vector<uE2EType > > & uE2E,
141 const bool construct_TTi,
142 std::vector<std::vector<std::vector<TTIndex> > > & TT,
143 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
151 template <
152 typename DerivedEMAP,
153 typename DeriveduEC,
154 typename DeriveduEE,
155 typename TTIndex,
156 typename TTiIndex>
158 const Eigen::MatrixBase<DerivedEMAP> & EMAP,
159 const Eigen::MatrixBase<DeriveduEC> & uEC,
160 const Eigen::MatrixBase<DeriveduEE> & uEE,
161 const bool construct_TTi,
162 std::vector<std::vector<std::vector<TTIndex> > > & TT,
163 std::vector<std::vector<std::vector<TTiIndex> > > & TTi);
164}
165
166#ifndef IGL_STATIC_LIBRARY
167# include "triangle_triangle_adjacency.cpp"
168#endif
169
170#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
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).