1 // This file is part of libigl, a simple c++ geometry processing library.
2 //
3 // Copyright (C) 2017 Sebastian Koch <s.koch@tu-berlin.de> and 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 
9 // Wrap the data class, no properties are exposed since it is not necessary
10 py::class_<igl::min_quad_with_fixed_data<double> > min_quad_with_fixed_data(m, "min_quad_with_fixed_data");
11 
12 min_quad_with_fixed_data
13 .def(py::init<>());
14 
15 m.def("min_quad_with_fixed_precompute", []
16 (
17   const Eigen::SparseMatrix<double>& A,
18   const Eigen::MatrixXi& known,
19   const Eigen::SparseMatrix<double>& Aeq,
20   const bool pd,
21   igl::min_quad_with_fixed_data<double> & data
22 )
__anon1809e9340102( const Eigen::SparseMatrix<double>& A, const Eigen::MatrixXi& known, const Eigen::SparseMatrix<double>& Aeq, const bool pd, igl::min_quad_with_fixed_data<double> & data ) 23 {
24   assert_is_VectorX("known",known);
25   return igl::min_quad_with_fixed_precompute(A,known,Aeq,pd,data);
26 }, __doc_igl_min_quad_with_fixed,
27 py::arg("A"), py::arg("known"), py::arg("Aeq"), py::arg("pd"), py::arg("data"));
28 
29 m.def("min_quad_with_fixed_solve", []
30 (
31   const igl::min_quad_with_fixed_data<double> & data,
32   const Eigen::MatrixXd& B,
33   const Eigen::MatrixXd& Y,
34   const Eigen::MatrixXd & Beq,
35   Eigen::MatrixXd& Z,
36   Eigen::MatrixXd& sol
37 )
__anon1809e9340202( const igl::min_quad_with_fixed_data<double> & data, const Eigen::MatrixXd& B, const Eigen::MatrixXd& Y, const Eigen::MatrixXd & Beq, Eigen::MatrixXd& Z, Eigen::MatrixXd& sol ) 38 {
39   assert_is_VectorX("B",B);
40   assert_is_VectorX("Y",Y);
41   assert_is_VectorX("Beq",Beq);
42   return igl::min_quad_with_fixed_solve(data,B,Y,Beq,Z,sol);
43 }, __doc_igl_min_quad_with_fixed,
44 py::arg("data"), py::arg("B"), py::arg("Y"), py::arg("Beq"), py::arg("Z"), py::arg("sol"));
45 
46 m.def("min_quad_with_fixed_solve", []
47 (
48   const igl::min_quad_with_fixed_data<double> & data,
49   const Eigen::MatrixXd& B,
50   const Eigen::MatrixXd& Y,
51   const Eigen::MatrixXd & Beq,
52   Eigen::MatrixXd& Z
53 )
__anon1809e9340302( const igl::min_quad_with_fixed_data<double> & data, const Eigen::MatrixXd& B, const Eigen::MatrixXd& Y, const Eigen::MatrixXd & Beq, Eigen::MatrixXd& Z ) 54 {
55   assert_is_VectorX("B",B);
56   assert_is_VectorX("Y",Y);
57   assert_is_VectorX("Beq",Beq);
58   return igl::min_quad_with_fixed_solve(data,B,Y,Beq,Z);
59 }, __doc_igl_min_quad_with_fixed,
60 py::arg("data"), py::arg("B"), py::arg("Y"), py::arg("Beq"), py::arg("Z"));
61 
62 m.def("min_quad_with_fixed", []
63 (
64   const Eigen::SparseMatrix<double>& A,
65   const Eigen::MatrixXd& B,
66   const Eigen::MatrixXi& known,
67   const Eigen::MatrixXd& Y,
68   const Eigen::SparseMatrix<double>& Aeq,
69   const Eigen::MatrixXd& Beq,
70   const bool pd,
71   Eigen::MatrixXd& Z
72 )
__anon1809e9340402( const Eigen::SparseMatrix<double>& A, const Eigen::MatrixXd& B, const Eigen::MatrixXi& known, const Eigen::MatrixXd& Y, const Eigen::SparseMatrix<double>& Aeq, const Eigen::MatrixXd& Beq, const bool pd, Eigen::MatrixXd& Z ) 73 {
74   assert_is_VectorX("B",B);
75   assert_is_VectorX("known",known);
76   assert_is_VectorX("Y",Y);
77   assert_is_VectorX("Beq",Beq);
78   return igl::min_quad_with_fixed(A,B,known,Y,Aeq,Beq,pd,Z);
79 }, __doc_igl_min_quad_with_fixed,
80 py::arg("A"), py::arg("B"), py::arg("known"), py::arg("Y"), py::arg("Aeq"), py::arg("Beq"), py::arg("pd"), py::arg("Z"));
81