libigl v2.5.0
Loading...
Searching...
No Matches
collapse_edge.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) 2015 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_COLLAPSE_EDGE_H
9#define IGL_COLLAPSE_EDGE_H
10#include "igl_inline.h"
11#include "min_heap.h"
13#include <Eigen/Core>
14#include <vector>
15#include <set>
16namespace igl
17{
18#ifndef IGL_COLLAPSE_EDGE_NULL
21 #define IGL_COLLAPSE_EDGE_NULL 0
22#endif
52 const int e,
53 const Eigen::RowVectorXd & p,
54 Eigen::MatrixXd & V,
55 Eigen::MatrixXi & F,
56 Eigen::MatrixXi & E,
57 Eigen::VectorXi & EMAP,
58 Eigen::MatrixXi & EF,
59 Eigen::MatrixXi & EI,
60 int & e1,
61 int & e2,
62 int & f1,
63 int & f2);
71 const int e,
72 const Eigen::RowVectorXd & p,
73 /*const*/ std::vector<int> & Nsv,
74 const std::vector<int> & Nsf,
75 /*const*/ std::vector<int> & Ndv,
76 const std::vector<int> & Ndf,
77 Eigen::MatrixXd & V,
78 Eigen::MatrixXi & F,
79 Eigen::MatrixXi & E,
80 Eigen::VectorXi & EMAP,
81 Eigen::MatrixXi & EF,
82 Eigen::MatrixXi & EI,
83 int & e1,
84 int & e2,
85 int & f1,
86 int & f2);
89 const int e,
90 const Eigen::RowVectorXd & p,
91 Eigen::MatrixXd & V,
92 Eigen::MatrixXi & F,
93 Eigen::MatrixXi & E,
94 Eigen::VectorXi & EMAP,
95 Eigen::MatrixXi & EF,
96 Eigen::MatrixXi & EI);
134 const decimate_cost_and_placement_callback & cost_and_placement,
135 const decimate_pre_collapse_callback & pre_collapse,
136 const decimate_post_collapse_callback & post_collapse,
137 Eigen::MatrixXd & V,
138 Eigen::MatrixXi & F,
139 Eigen::MatrixXi & E,
140 Eigen::VectorXi & EMAP,
141 Eigen::MatrixXi & EF,
142 Eigen::MatrixXi & EI,
143 igl::min_heap< std::tuple<double,int,int> > & Q,
144 Eigen::VectorXi & EQ,
145 Eigen::MatrixXd & C,
146 int & e,
147 int & e1,
148 int & e2,
149 int & f1,
150 int & f2);
153 const decimate_cost_and_placement_callback & cost_and_placement,
154 Eigen::MatrixXd & V,
155 Eigen::MatrixXi & F,
156 Eigen::MatrixXi & E,
157 Eigen::VectorXi & EMAP,
158 Eigen::MatrixXi & EF,
159 Eigen::MatrixXi & EI,
160 igl::min_heap< std::tuple<double,int,int> > & Q,
161 Eigen::VectorXi & EQ,
162 Eigen::MatrixXd & C);
165 const decimate_cost_and_placement_callback & cost_and_placement,
166 const decimate_pre_collapse_callback & pre_collapse,
167 const decimate_post_collapse_callback & post_collapse,
168 Eigen::MatrixXd & V,
169 Eigen::MatrixXi & F,
170 Eigen::MatrixXi & E,
171 Eigen::VectorXi & EMAP,
172 Eigen::MatrixXi & EF,
173 Eigen::MatrixXi & EI,
174 igl::min_heap< std::tuple<double,int,int> > & Q,
175 Eigen::VectorXi & EQ,
176 Eigen::MatrixXd & C);
177}
178
179#ifndef IGL_STATIC_LIBRARY
180# include "collapse_edge.cpp"
181#endif
182#endif
See decimate.h for more details.
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
std::function< void(const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const igl::min_heap< std::tuple< double, int, int > > &, const Eigen::VectorXi &, const Eigen::MatrixXd &, const int, const int, const int, const int, const int, const bool)> decimate_post_collapse_callback
Function handle called just after collapse_edge is attempted.
Definition decimate_callback_types.h:164
bool collapse_edge(const int e, const Eigen::RowVectorXd &p, Eigen::MatrixXd &V, Eigen::MatrixXi &F, Eigen::MatrixXi &E, Eigen::VectorXi &EMAP, Eigen::MatrixXi &EF, Eigen::MatrixXi &EI, int &e1, int &e2, int &f1, int &f2)
Attempt to collapse a given edge of a mesh.
std::priority_queue< T, std::vector< T >, std::greater< T > > min_heap
Templated min heap (reverses sort order of std::priority_queue)
Definition min_heap.h:18
std::function< bool(const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const igl::min_heap< std::tuple< double, int, int > > &, const Eigen::VectorXi &, const Eigen::MatrixXd &, const int)> decimate_pre_collapse_callback
Function handle called just before collapse_edge is attempted.
Definition decimate_callback_types.h:122
std::function< void(const int, const Eigen::MatrixXd &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, const Eigen::VectorXi &, const Eigen::MatrixXi &, const Eigen::MatrixXi &, double &, Eigen::RowVectorXd &)> decimate_cost_and_placement_callback
Function handle used to control the cost of each edge collapse in igl::decimate.
Definition decimate_callback_types.h:46