separate header for header-only mode circular deps

This commit is contained in:
Alec Jacobson
2020-06-27 21:02:19 -04:00
parent d3248f0a0f
commit 61834f4fa1
+75
View File
@@ -0,0 +1,75 @@
// This file is part of libigl, a simple c++ geometry processing library.
//
// Copyright (C) 2020 Alec Jacobson <alecjacobson@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla Public License
// v. 2.0. If a copy of the MPL was not distributed with this file, You can
// obtain one at http://mozilla.org/MPL/2.0/.
#ifndef IGL_DECIMATE_FUNC_TYPES_H
#define IGL_DECIMATE_FUNC_TYPES_H
#include "min_heap.h"
namespace igl
{
// Function handles used to customize the `igl::decimate` command.
using decimate_cost_and_placement_func =
std::function<void(
const int ,/*e*/
const Eigen::MatrixXd & ,/*V*/
const Eigen::MatrixXi & ,/*F*/
const Eigen::MatrixXi & ,/*E*/
const Eigen::VectorXi & ,/*EMAP*/
const Eigen::MatrixXi & ,/*EF*/
const Eigen::MatrixXi & ,/*EI*/
double & ,/*cost*/
Eigen::RowVectorXd & /*p*/
)>;
using decimate_stopping_condition_func =
std::function<bool(
const Eigen::MatrixXd & ,/*V*/
const Eigen::MatrixXi & ,/*F*/
const Eigen::MatrixXi & ,/*E*/
const Eigen::VectorXi & ,/*EMAP*/
const Eigen::MatrixXi & ,/*EF*/
const Eigen::MatrixXi & ,/*EI*/
const igl::min_heap< std::tuple<double,int,int> > & ,/*Q*/
const Eigen::VectorXi & ,/*EQ*/
const Eigen::MatrixXd & ,/*C*/
const int ,/*e*/
const int ,/*e1*/
const int ,/*e2*/
const int ,/*f1*/
const int /*f2*/
)>;
using decimate_pre_collapse_func =
std::function<bool(
const Eigen::MatrixXd & ,/*V*/
const Eigen::MatrixXi & ,/*F*/
const Eigen::MatrixXi & ,/*E*/
const Eigen::VectorXi & ,/*EMAP*/
const Eigen::MatrixXi & ,/*EF*/
const Eigen::MatrixXi & ,/*EI*/
const igl::min_heap< std::tuple<double,int,int> > & ,/*Q*/
const Eigen::VectorXi & ,/*EQ*/
const Eigen::MatrixXd & ,/*C*/
const int /*e*/
)>;
using decimate_post_collapse_func =
std::function<void(
const Eigen::MatrixXd & ,/*V*/
const Eigen::MatrixXi & ,/*F*/
const Eigen::MatrixXi & ,/*E*/
const Eigen::VectorXi & ,/*EMAP*/
const Eigen::MatrixXi & ,/*EF*/
const Eigen::MatrixXi & ,/*EI*/
const igl::min_heap< std::tuple<double,int,int> > & ,/*Q*/
const Eigen::VectorXi & ,/*EQ*/
const Eigen::MatrixXd & ,/*C*/
const int ,/*e*/
const int ,/*e1*/
const int ,/*e2*/
const int ,/*f1*/
const int ,/*f2*/
const bool /*collapsed*/
)>;
}
#endif