py_streamlines.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. py::class_<igl::StreamlineData> StreamlineData(m, "StreamlineData");
  9. StreamlineData
  10. .def(py::init<>())
  11. .def_readwrite("TT", &igl::StreamlineData::TT)
  12. .def_readwrite("E", &igl::StreamlineData::E)
  13. .def_readwrite("F2E", &igl::StreamlineData::F2E)
  14. .def_readwrite("E2F", &igl::StreamlineData::E2F)
  15. .def_readwrite("field", &igl::StreamlineData::field)
  16. .def_readwrite("match_ab", &igl::StreamlineData::match_ab)
  17. .def_readwrite("match_ba", &igl::StreamlineData::match_ba)
  18. .def_readwrite("nsample", &igl::StreamlineData::nsample)
  19. .def_readwrite("degree", &igl::StreamlineData::degree)
  20. ;
  21. py::class_<igl::StreamlineState> StreamlineState(m, "StreamlineState");
  22. StreamlineState
  23. .def(py::init<>())
  24. .def_readwrite("start_point", &igl::StreamlineState::start_point)
  25. .def_readwrite("end_point", &igl::StreamlineState::end_point)
  26. .def_readwrite("current_face", &igl::StreamlineState::current_face)
  27. .def_readwrite("current_direction", &igl::StreamlineState::current_direction)
  28. .def("copy", [](const igl::StreamlineState &m) { return igl::StreamlineState(m); })
  29. ;
  30. m.def("streamlines_init", []
  31. (
  32. const Eigen::MatrixXd& V,
  33. const Eigen::MatrixXi& F,
  34. const Eigen::MatrixXd& temp_field,
  35. const bool treat_as_symmetric,
  36. igl::StreamlineData &data,
  37. igl::StreamlineState &state,
  38. double percentage
  39. )
  40. {
  41. return igl::streamlines_init(V, F, temp_field, treat_as_symmetric, data, state, percentage);
  42. },__doc_igl_streamlines_init,
  43. py::arg("V"), py::arg("F"), py::arg("temp_field"), py::arg("treat_as_symmetric"),
  44. py::arg("data"), py::arg("state"), py::arg("percentage")=0.3);
  45. m.def("streamlines_next", []
  46. (
  47. const Eigen::MatrixXd& V,
  48. const Eigen::MatrixXi& F,
  49. const igl::StreamlineData &data,
  50. igl::StreamlineState &state
  51. )
  52. {
  53. return igl::streamlines_next(V, F, data, state);
  54. },__doc_igl_streamlines_next,
  55. py::arg("V"), py::arg("F"), py::arg("data"), py::arg("state"));