pytetwild 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pytetwild-0.1.0/.github/workflows/build-and-deploy.yml +135 -0
- pytetwild-0.1.0/.gitignore +78 -0
- pytetwild-0.1.0/.gitmodules +6 -0
- pytetwild-0.1.0/.pre-commit-config.yaml +66 -0
- pytetwild-0.1.0/CMakeLists.txt +41 -0
- pytetwild-0.1.0/CONTRIBUTING.md +84 -0
- pytetwild-0.1.0/LICENSE +373 -0
- pytetwild-0.1.0/PKG-INFO +145 -0
- pytetwild-0.1.0/README.rst +117 -0
- pytetwild-0.1.0/exploded-sphere.png +0 -0
- pytetwild-0.1.0/pyproject.toml +166 -0
- pytetwild-0.1.0/src/FTetWildWrapper.cpp +440 -0
- pytetwild-0.1.0/src/fTetWild/.clang-format +148 -0
- pytetwild-0.1.0/src/fTetWild/.github/workflows/continuous.yml +103 -0
- pytetwild-0.1.0/src/fTetWild/.gitignore +14 -0
- pytetwild-0.1.0/src/fTetWild/.travis.yml +54 -0
- pytetwild-0.1.0/src/fTetWild/CMakeLists.txt +184 -0
- pytetwild-0.1.0/src/fTetWild/LICENSE.MPL2 +373 -0
- pytetwild-0.1.0/src/fTetWild/README.md +179 -0
- pytetwild-0.1.0/src/fTetWild/cmake/DownloadProject.CMakeLists.cmake.in +17 -0
- pytetwild-0.1.0/src/fTetWild/cmake/DownloadProject.cmake +182 -0
- pytetwild-0.1.0/src/fTetWild/cmake/FindGMPfTetWild.cmake +35 -0
- pytetwild-0.1.0/src/fTetWild/cmake/FindMPFR.cmake +72 -0
- pytetwild-0.1.0/src/fTetWild/cmake/FloatTetwildDependencies.cmake +186 -0
- pytetwild-0.1.0/src/fTetWild/cmake/FloatTetwildUtils.cmake +36 -0
- pytetwild-0.1.0/src/fTetWild/cmake/PrependCurrentPath.cmake +8 -0
- pytetwild-0.1.0/src/fTetWild/cmake/UseColors.cmake +47 -0
- pytetwild-0.1.0/src/fTetWild/cmake/Warnings.cmake +146 -0
- pytetwild-0.1.0/src/fTetWild/cmake/geogram.cmake +89 -0
- pytetwild-0.1.0/src/fTetWild/figs/1k.jpg +0 -0
- pytetwild-0.1.0/src/fTetWild/python/generate-table-code.py +220 -0
- pytetwild-0.1.0/src/fTetWild/python/plot-tet.py +366 -0
- pytetwild-0.1.0/src/fTetWild/python/save_all_confs.py +26 -0
- pytetwild-0.1.0/src/fTetWild/replicability_instructions.htm +16 -0
- pytetwild-0.1.0/src/fTetWild/src/AABBWrapper.cpp +160 -0
- pytetwild-0.1.0/src/fTetWild/src/AABBWrapper.h +288 -0
- pytetwild-0.1.0/src/fTetWild/src/CMakeLists.txt +69 -0
- pytetwild-0.1.0/src/fTetWild/src/CSGTreeParser.cpp +174 -0
- pytetwild-0.1.0/src/fTetWild/src/CSGTreeParser.hpp +52 -0
- pytetwild-0.1.0/src/fTetWild/src/CutMesh.cpp +702 -0
- pytetwild-0.1.0/src/fTetWild/src/CutMesh.h +73 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeCollapsing.cpp +633 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeCollapsing.h +27 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeSplitting.cpp +272 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeSplitting.h +22 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeSwapping.cpp +700 -0
- pytetwild-0.1.0/src/fTetWild/src/EdgeSwapping.h +23 -0
- pytetwild-0.1.0/src/fTetWild/src/FloatTetDelaunay.cpp +338 -0
- pytetwild-0.1.0/src/fTetWild/src/FloatTetDelaunay.h +28 -0
- pytetwild-0.1.0/src/fTetWild/src/FloatTetwild.cpp +196 -0
- pytetwild-0.1.0/src/fTetWild/src/FloatTetwild.h +23 -0
- pytetwild-0.1.0/src/fTetWild/src/LocalOperations.cpp +1663 -0
- pytetwild-0.1.0/src/fTetWild/src/LocalOperations.h +173 -0
- pytetwild-0.1.0/src/fTetWild/src/Logger.cpp +46 -0
- pytetwild-0.1.0/src/fTetWild/src/Logger.hpp +38 -0
- pytetwild-0.1.0/src/fTetWild/src/Mesh.cpp +340 -0
- pytetwild-0.1.0/src/fTetWild/src/Mesh.hpp +279 -0
- pytetwild-0.1.0/src/fTetWild/src/MeshIO.cpp +584 -0
- pytetwild-0.1.0/src/fTetWild/src/MeshIO.hpp +33 -0
- pytetwild-0.1.0/src/fTetWild/src/MeshImprovement.cpp +2732 -0
- pytetwild-0.1.0/src/fTetWild/src/MeshImprovement.h +56 -0
- pytetwild-0.1.0/src/fTetWild/src/Parameters.h +164 -0
- pytetwild-0.1.0/src/fTetWild/src/Simplification.cpp +1031 -0
- pytetwild-0.1.0/src/fTetWild/src/Simplification.h +34 -0
- pytetwild-0.1.0/src/fTetWild/src/Statistics.h +111 -0
- pytetwild-0.1.0/src/fTetWild/src/TriangleInsertion.cpp +3537 -0
- pytetwild-0.1.0/src/fTetWild/src/TriangleInsertion.h +132 -0
- pytetwild-0.1.0/src/fTetWild/src/Types.hpp +45 -0
- pytetwild-0.1.0/src/fTetWild/src/VertexSmoothing.cpp +352 -0
- pytetwild-0.1.0/src/fTetWild/src/VertexSmoothing.h +22 -0
- pytetwild-0.1.0/src/fTetWild/src/auto_table.cpp +3158 -0
- pytetwild-0.1.0/src/fTetWild/src/auto_table.hpp +27 -0
- pytetwild-0.1.0/src/fTetWild/src/external/CMakeLists.txt +67 -0
- pytetwild-0.1.0/src/fTetWild/src/external/Exception.h +43 -0
- pytetwild-0.1.0/src/fTetWild/src/external/FastWindingNumber.cpp +39 -0
- pytetwild-0.1.0/src/fTetWild/src/external/FastWindingNumber.hpp +8 -0
- pytetwild-0.1.0/src/fTetWild/src/external/MshLoader.cpp +454 -0
- pytetwild-0.1.0/src/fTetWild/src/external/MshLoader.h +86 -0
- pytetwild-0.1.0/src/fTetWild/src/external/MshSaver.cpp +383 -0
- pytetwild-0.1.0/src/fTetWild/src/external/MshSaver.h +59 -0
- pytetwild-0.1.0/src/fTetWild/src/external/Predicates.cpp +120 -0
- pytetwild-0.1.0/src/fTetWild/src/external/Predicates.hpp +22 -0
- pytetwild-0.1.0/src/fTetWild/src/external/Rational.h +175 -0
- pytetwild-0.1.0/src/fTetWild/src/external/bfs_orient.cpp +93 -0
- pytetwild-0.1.0/src/fTetWild/src/external/bfs_orient.h +29 -0
- pytetwild-0.1.0/src/fTetWild/src/external/getRSS.c +122 -0
- pytetwild-0.1.0/src/fTetWild/src/external/get_mem.cpp +12 -0
- pytetwild-0.1.0/src/fTetWild/src/external/get_mem.h +12 -0
- pytetwild-0.1.0/src/fTetWild/src/external/mesh_AABB.cpp +571 -0
- pytetwild-0.1.0/src/fTetWild/src/external/mesh_AABB.h +449 -0
- pytetwild-0.1.0/src/fTetWild/src/external/predicates.c +4273 -0
- pytetwild-0.1.0/src/fTetWild/src/external/triangle_triangle_intersection.cpp +290 -0
- pytetwild-0.1.0/src/fTetWild/src/external/triangle_triangle_intersection_old.cpp +590 -0
- pytetwild-0.1.0/src/fTetWild/src/intersections.cpp +720 -0
- pytetwild-0.1.0/src/fTetWild/src/intersections.h +61 -0
- pytetwild-0.1.0/src/fTetWild/src/main.cpp +683 -0
- pytetwild-0.1.0/src/fTetWild/tests/CMakeLists.txt +41 -0
- pytetwild-0.1.0/src/fTetWild/tests/bunny.off +10453 -0
- pytetwild-0.1.0/src/fTetWild/tests/main.cpp +6 -0
- pytetwild-0.1.0/src/fTetWild/tests/test_predicates.cpp +78 -0
- pytetwild-0.1.0/src/fTetWild/tests/test_subdivision.cpp +31 -0
- pytetwild-0.1.0/src/fTetWild/tests/test_table.cpp +60 -0
- pytetwild-0.1.0/src/fTetWild/tests/test_tree.cpp +162 -0
- pytetwild-0.1.0/src/fTetWild/tests/tests.cpp +12 -0
- pytetwild-0.1.0/src/pybind11/.appveyor.yml +35 -0
- pytetwild-0.1.0/src/pybind11/.clang-format +38 -0
- pytetwild-0.1.0/src/pybind11/.clang-tidy +77 -0
- pytetwild-0.1.0/src/pybind11/.cmake-format.yaml +73 -0
- pytetwild-0.1.0/src/pybind11/.codespell-ignore-lines +24 -0
- pytetwild-0.1.0/src/pybind11/.gitattributes +1 -0
- pytetwild-0.1.0/src/pybind11/.github/CODEOWNERS +9 -0
- pytetwild-0.1.0/src/pybind11/.github/CONTRIBUTING.md +388 -0
- pytetwild-0.1.0/src/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
- pytetwild-0.1.0/src/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
- pytetwild-0.1.0/src/pybind11/.github/dependabot.yml +15 -0
- pytetwild-0.1.0/src/pybind11/.github/labeler.yml +8 -0
- pytetwild-0.1.0/src/pybind11/.github/labeler_merged.yml +3 -0
- pytetwild-0.1.0/src/pybind11/.github/matchers/pylint.json +32 -0
- pytetwild-0.1.0/src/pybind11/.github/pull_request_template.md +19 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/ci.yml +1190 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/configure.yml +92 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/format.yml +60 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/labeler.yml +25 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/pip.yml +114 -0
- pytetwild-0.1.0/src/pybind11/.github/workflows/upstream.yml +116 -0
- pytetwild-0.1.0/src/pybind11/.gitignore +46 -0
- pytetwild-0.1.0/src/pybind11/.pre-commit-config.yaml +155 -0
- pytetwild-0.1.0/src/pybind11/.readthedocs.yml +20 -0
- pytetwild-0.1.0/src/pybind11/CMakeLists.txt +363 -0
- pytetwild-0.1.0/src/pybind11/LICENSE +29 -0
- pytetwild-0.1.0/src/pybind11/MANIFEST.in +6 -0
- pytetwild-0.1.0/src/pybind11/README.rst +180 -0
- pytetwild-0.1.0/src/pybind11/SECURITY.md +13 -0
- pytetwild-0.1.0/src/pybind11/docs/Doxyfile +21 -0
- pytetwild-0.1.0/src/pybind11/docs/_static/css/custom.css +3 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/chrono.rst +81 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/custom.rst +93 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/eigen.rst +310 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/functional.rst +109 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/index.rst +43 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/overview.rst +170 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/stl.rst +249 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/cast/strings.rst +296 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/classes.rst +1335 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/embedding.rst +262 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/exceptions.rst +401 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/functions.rst +614 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/misc.rst +429 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/pycpp/index.rst +13 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/pycpp/numpy.rst +455 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/pycpp/object.rst +286 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
- pytetwild-0.1.0/src/pybind11/docs/advanced/smart_ptrs.rst +174 -0
- pytetwild-0.1.0/src/pybind11/docs/basics.rst +307 -0
- pytetwild-0.1.0/src/pybind11/docs/benchmark.py +87 -0
- pytetwild-0.1.0/src/pybind11/docs/benchmark.rst +95 -0
- pytetwild-0.1.0/src/pybind11/docs/changelog.rst +2832 -0
- pytetwild-0.1.0/src/pybind11/docs/classes.rst +555 -0
- pytetwild-0.1.0/src/pybind11/docs/cmake/index.rst +8 -0
- pytetwild-0.1.0/src/pybind11/docs/compiling.rst +649 -0
- pytetwild-0.1.0/src/pybind11/docs/conf.py +368 -0
- pytetwild-0.1.0/src/pybind11/docs/faq.rst +308 -0
- pytetwild-0.1.0/src/pybind11/docs/index.rst +48 -0
- pytetwild-0.1.0/src/pybind11/docs/installing.rst +105 -0
- pytetwild-0.1.0/src/pybind11/docs/limitations.rst +72 -0
- pytetwild-0.1.0/src/pybind11/docs/pybind11-logo.png +0 -0
- pytetwild-0.1.0/src/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- pytetwild-0.1.0/src/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
- pytetwild-0.1.0/src/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- pytetwild-0.1.0/src/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
- pytetwild-0.1.0/src/pybind11/docs/reference.rst +130 -0
- pytetwild-0.1.0/src/pybind11/docs/release.rst +143 -0
- pytetwild-0.1.0/src/pybind11/docs/requirements.txt +6 -0
- pytetwild-0.1.0/src/pybind11/docs/upgrade.rst +566 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/attr.h +690 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/buffer_info.h +208 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/cast.h +1730 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/chrono.h +225 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/common.h +2 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/complex.h +74 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/class.h +748 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/common.h +1263 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/descr.h +171 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/init.h +434 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/internals.h +662 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/type_caster_base.h +1214 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/detail/typeid.h +65 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/eigen/common.h +9 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/eigen/matrix.h +714 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/eigen/tensor.h +516 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/eigen.h +12 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/embed.h +316 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/eval.h +156 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/functional.h +137 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/gil.h +247 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/gil_safe_call_once.h +91 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/iostream.h +265 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/numpy.h +2020 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/operators.h +202 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/options.h +92 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/pybind11.h +2942 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/pytypes.h +2573 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/stl/filesystem.h +116 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/stl.h +447 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/stl_bind.h +823 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
- pytetwild-0.1.0/src/pybind11/include/pybind11/typing.h +117 -0
- pytetwild-0.1.0/src/pybind11/noxfile.py +107 -0
- pytetwild-0.1.0/src/pybind11/pybind11/__init__.py +17 -0
- pytetwild-0.1.0/src/pybind11/pybind11/__main__.py +62 -0
- pytetwild-0.1.0/src/pybind11/pybind11/_version.py +12 -0
- pytetwild-0.1.0/src/pybind11/pybind11/commands.py +37 -0
- pytetwild-0.1.0/src/pybind11/pybind11/py.typed +0 -0
- pytetwild-0.1.0/src/pybind11/pybind11/setup_helpers.py +500 -0
- pytetwild-0.1.0/src/pybind11/pyproject.toml +95 -0
- pytetwild-0.1.0/src/pybind11/setup.cfg +43 -0
- pytetwild-0.1.0/src/pybind11/setup.py +150 -0
- pytetwild-0.1.0/src/pybind11/tests/CMakeLists.txt +585 -0
- pytetwild-0.1.0/src/pybind11/tests/conftest.py +221 -0
- pytetwild-0.1.0/src/pybind11/tests/constructor_stats.h +322 -0
- pytetwild-0.1.0/src/pybind11/tests/cross_module_gil_utils.cpp +108 -0
- pytetwild-0.1.0/src/pybind11/tests/cross_module_interleaved_error_already_set.cpp +51 -0
- pytetwild-0.1.0/src/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +14 -0
- pytetwild-0.1.0/src/pybind11/tests/env.py +27 -0
- pytetwild-0.1.0/src/pybind11/tests/extra_python_package/pytest.ini +0 -0
- pytetwild-0.1.0/src/pybind11/tests/extra_python_package/test_files.py +293 -0
- pytetwild-0.1.0/src/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- pytetwild-0.1.0/src/pybind11/tests/extra_setuptools/test_setuphelper.py +151 -0
- pytetwild-0.1.0/src/pybind11/tests/local_bindings.h +92 -0
- pytetwild-0.1.0/src/pybind11/tests/object.h +205 -0
- pytetwild-0.1.0/src/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
- pytetwild-0.1.0/src/pybind11/tests/pybind11_tests.cpp +123 -0
- pytetwild-0.1.0/src/pybind11/tests/pybind11_tests.h +85 -0
- pytetwild-0.1.0/src/pybind11/tests/pytest.ini +22 -0
- pytetwild-0.1.0/src/pybind11/tests/requirements.txt +15 -0
- pytetwild-0.1.0/src/pybind11/tests/test_async.cpp +25 -0
- pytetwild-0.1.0/src/pybind11/tests/test_async.py +24 -0
- pytetwild-0.1.0/src/pybind11/tests/test_buffers.cpp +259 -0
- pytetwild-0.1.0/src/pybind11/tests/test_buffers.py +228 -0
- pytetwild-0.1.0/src/pybind11/tests/test_builtin_casters.cpp +392 -0
- pytetwild-0.1.0/src/pybind11/tests/test_builtin_casters.py +528 -0
- pytetwild-0.1.0/src/pybind11/tests/test_call_policies.cpp +115 -0
- pytetwild-0.1.0/src/pybind11/tests/test_call_policies.py +247 -0
- pytetwild-0.1.0/src/pybind11/tests/test_callbacks.cpp +280 -0
- pytetwild-0.1.0/src/pybind11/tests/test_callbacks.py +225 -0
- pytetwild-0.1.0/src/pybind11/tests/test_chrono.cpp +81 -0
- pytetwild-0.1.0/src/pybind11/tests/test_chrono.py +205 -0
- pytetwild-0.1.0/src/pybind11/tests/test_class.cpp +657 -0
- pytetwild-0.1.0/src/pybind11/tests/test_class.py +499 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/CMakeLists.txt +80 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/embed.cpp +23 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/main.cpp +6 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +47 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +41 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +47 -0
- pytetwild-0.1.0/src/pybind11/tests/test_cmake_build/test.py +8 -0
- pytetwild-0.1.0/src/pybind11/tests/test_const_name.cpp +55 -0
- pytetwild-0.1.0/src/pybind11/tests/test_const_name.py +29 -0
- pytetwild-0.1.0/src/pybind11/tests/test_constants_and_functions.cpp +154 -0
- pytetwild-0.1.0/src/pybind11/tests/test_constants_and_functions.py +56 -0
- pytetwild-0.1.0/src/pybind11/tests/test_copy_move.cpp +533 -0
- pytetwild-0.1.0/src/pybind11/tests/test_copy_move.py +132 -0
- pytetwild-0.1.0/src/pybind11/tests/test_custom_type_casters.cpp +209 -0
- pytetwild-0.1.0/src/pybind11/tests/test_custom_type_casters.py +122 -0
- pytetwild-0.1.0/src/pybind11/tests/test_custom_type_setup.cpp +41 -0
- pytetwild-0.1.0/src/pybind11/tests/test_custom_type_setup.py +48 -0
- pytetwild-0.1.0/src/pybind11/tests/test_docstring_options.cpp +141 -0
- pytetwild-0.1.0/src/pybind11/tests/test_docstring_options.py +64 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eigen_matrix.cpp +445 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eigen_matrix.py +812 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eigen_tensor.cpp +18 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eigen_tensor.inl +333 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eigen_tensor.py +288 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/CMakeLists.txt +47 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/catch.cpp +43 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/external_module.cpp +20 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/test_interpreter.cpp +488 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/test_interpreter.py +14 -0
- pytetwild-0.1.0/src/pybind11/tests/test_embed/test_trampoline.py +16 -0
- pytetwild-0.1.0/src/pybind11/tests/test_enum.cpp +133 -0
- pytetwild-0.1.0/src/pybind11/tests/test_enum.py +269 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eval.cpp +118 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eval.py +50 -0
- pytetwild-0.1.0/src/pybind11/tests/test_eval_call.py +4 -0
- pytetwild-0.1.0/src/pybind11/tests/test_exceptions.cpp +385 -0
- pytetwild-0.1.0/src/pybind11/tests/test_exceptions.h +13 -0
- pytetwild-0.1.0/src/pybind11/tests/test_exceptions.py +421 -0
- pytetwild-0.1.0/src/pybind11/tests/test_factory_constructors.cpp +430 -0
- pytetwild-0.1.0/src/pybind11/tests/test_factory_constructors.py +516 -0
- pytetwild-0.1.0/src/pybind11/tests/test_gil_scoped.cpp +144 -0
- pytetwild-0.1.0/src/pybind11/tests/test_gil_scoped.py +242 -0
- pytetwild-0.1.0/src/pybind11/tests/test_iostream.cpp +126 -0
- pytetwild-0.1.0/src/pybind11/tests/test_iostream.py +291 -0
- pytetwild-0.1.0/src/pybind11/tests/test_kwargs_and_defaults.cpp +327 -0
- pytetwild-0.1.0/src/pybind11/tests/test_kwargs_and_defaults.py +425 -0
- pytetwild-0.1.0/src/pybind11/tests/test_local_bindings.cpp +106 -0
- pytetwild-0.1.0/src/pybind11/tests/test_local_bindings.py +257 -0
- pytetwild-0.1.0/src/pybind11/tests/test_methods_and_attributes.cpp +493 -0
- pytetwild-0.1.0/src/pybind11/tests/test_methods_and_attributes.py +537 -0
- pytetwild-0.1.0/src/pybind11/tests/test_modules.cpp +125 -0
- pytetwild-0.1.0/src/pybind11/tests/test_modules.py +116 -0
- pytetwild-0.1.0/src/pybind11/tests/test_multiple_inheritance.cpp +341 -0
- pytetwild-0.1.0/src/pybind11/tests/test_multiple_inheritance.py +493 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_array.cpp +552 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_array.py +668 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_dtypes.cpp +614 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_dtypes.py +440 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_vectorize.cpp +107 -0
- pytetwild-0.1.0/src/pybind11/tests/test_numpy_vectorize.py +266 -0
- pytetwild-0.1.0/src/pybind11/tests/test_opaque_types.cpp +77 -0
- pytetwild-0.1.0/src/pybind11/tests/test_opaque_types.py +58 -0
- pytetwild-0.1.0/src/pybind11/tests/test_operator_overloading.cpp +281 -0
- pytetwild-0.1.0/src/pybind11/tests/test_operator_overloading.py +151 -0
- pytetwild-0.1.0/src/pybind11/tests/test_pickling.cpp +194 -0
- pytetwild-0.1.0/src/pybind11/tests/test_pickling.py +93 -0
- pytetwild-0.1.0/src/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
- pytetwild-0.1.0/src/pybind11/tests/test_python_multiple_inheritance.py +35 -0
- pytetwild-0.1.0/src/pybind11/tests/test_pytypes.cpp +835 -0
- pytetwild-0.1.0/src/pybind11/tests/test_pytypes.py +947 -0
- pytetwild-0.1.0/src/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
- pytetwild-0.1.0/src/pybind11/tests/test_sequences_and_iterators.py +265 -0
- pytetwild-0.1.0/src/pybind11/tests/test_smart_ptr.cpp +473 -0
- pytetwild-0.1.0/src/pybind11/tests/test_smart_ptr.py +315 -0
- pytetwild-0.1.0/src/pybind11/tests/test_stl.cpp +551 -0
- pytetwild-0.1.0/src/pybind11/tests/test_stl.py +381 -0
- pytetwild-0.1.0/src/pybind11/tests/test_stl_binders.cpp +276 -0
- pytetwild-0.1.0/src/pybind11/tests/test_stl_binders.py +393 -0
- pytetwild-0.1.0/src/pybind11/tests/test_tagbased_polymorphic.cpp +147 -0
- pytetwild-0.1.0/src/pybind11/tests/test_tagbased_polymorphic.py +28 -0
- pytetwild-0.1.0/src/pybind11/tests/test_thread.cpp +66 -0
- pytetwild-0.1.0/src/pybind11/tests/test_thread.py +42 -0
- pytetwild-0.1.0/src/pybind11/tests/test_type_caster_pyobject_ptr.cpp +130 -0
- pytetwild-0.1.0/src/pybind11/tests/test_type_caster_pyobject_ptr.py +104 -0
- pytetwild-0.1.0/src/pybind11/tests/test_union.cpp +22 -0
- pytetwild-0.1.0/src/pybind11/tests/test_union.py +8 -0
- pytetwild-0.1.0/src/pybind11/tests/test_unnamed_namespace_a.cpp +38 -0
- pytetwild-0.1.0/src/pybind11/tests/test_unnamed_namespace_a.py +34 -0
- pytetwild-0.1.0/src/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
- pytetwild-0.1.0/src/pybind11/tests/test_unnamed_namespace_b.py +5 -0
- pytetwild-0.1.0/src/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
- pytetwild-0.1.0/src/pybind11/tests/test_vector_unique_ptr_member.py +14 -0
- pytetwild-0.1.0/src/pybind11/tests/test_virtual_functions.cpp +592 -0
- pytetwild-0.1.0/src/pybind11/tests/test_virtual_functions.py +458 -0
- pytetwild-0.1.0/src/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
- pytetwild-0.1.0/src/pybind11/tests/valgrind-python.supp +117 -0
- pytetwild-0.1.0/src/pybind11/tools/FindCatch.cmake +76 -0
- pytetwild-0.1.0/src/pybind11/tools/FindEigen3.cmake +86 -0
- pytetwild-0.1.0/src/pybind11/tools/FindPythonLibsNew.cmake +310 -0
- pytetwild-0.1.0/src/pybind11/tools/JoinPaths.cmake +23 -0
- pytetwild-0.1.0/src/pybind11/tools/check-style.sh +44 -0
- pytetwild-0.1.0/src/pybind11/tools/cmake_uninstall.cmake.in +23 -0
- pytetwild-0.1.0/src/pybind11/tools/codespell_ignore_lines_from_errors.py +39 -0
- pytetwild-0.1.0/src/pybind11/tools/libsize.py +36 -0
- pytetwild-0.1.0/src/pybind11/tools/make_changelog.py +88 -0
- pytetwild-0.1.0/src/pybind11/tools/pybind11.pc.in +7 -0
- pytetwild-0.1.0/src/pybind11/tools/pybind11Common.cmake +415 -0
- pytetwild-0.1.0/src/pybind11/tools/pybind11Config.cmake.in +233 -0
- pytetwild-0.1.0/src/pybind11/tools/pybind11NewTools.cmake +311 -0
- pytetwild-0.1.0/src/pybind11/tools/pybind11Tools.cmake +239 -0
- pytetwild-0.1.0/src/pybind11/tools/pyproject.toml +3 -0
- pytetwild-0.1.0/src/pybind11/tools/setup_global.py.in +63 -0
- pytetwild-0.1.0/src/pybind11/tools/setup_main.py.in +44 -0
- pytetwild-0.1.0/src/pytetwild/__init__.py +4 -0
- pytetwild-0.1.0/src/pytetwild/_version.py +5 -0
- pytetwild-0.1.0/src/pytetwild/py.typed +1 -0
- pytetwild-0.1.0/src/pytetwild/pytetwild.py +190 -0
- pytetwild-0.1.0/tests/test_data/box.stl +0 -0
- pytetwild-0.1.0/tests/test_data/csgtree.json +1 -0
- pytetwild-0.1.0/tests/test_data/sphere.stl +0 -0
- pytetwild-0.1.0/tests/test_data/test_surf.ply +0 -0
- pytetwild-0.1.0/tests/test_data/test_tets.msh +0 -0
- pytetwild-0.1.0/tests/test_pytetwild.py +135 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
name: Build and upload
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- "*"
|
|
8
|
+
branches:
|
|
9
|
+
- "main"
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build_wheels:
|
|
17
|
+
name: Build wheels on ${{ matrix.os }}
|
|
18
|
+
runs-on: ${{ matrix.os }}
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
os: [ubuntu-latest, windows-latest, macos-15-intel, macos-15]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
with:
|
|
27
|
+
submodules: true
|
|
28
|
+
|
|
29
|
+
- name: Setup Miniconda (Windows)
|
|
30
|
+
if: runner.os == 'Windows'
|
|
31
|
+
uses: conda-incubator/setup-miniconda@v3.0.3
|
|
32
|
+
|
|
33
|
+
- name: Install Dependencies (Windows)
|
|
34
|
+
if: runner.os == 'Windows'
|
|
35
|
+
shell: powershell
|
|
36
|
+
run: conda install -c conda-forge mpir zlib -y
|
|
37
|
+
|
|
38
|
+
- name: Set env (Windows)
|
|
39
|
+
if: runner.os == 'Windows'
|
|
40
|
+
run: |
|
|
41
|
+
echo "appdata=$env:LOCALAPPDATA" >> ${env:GITHUB_ENV}
|
|
42
|
+
echo "GMP_INC=C:\Miniconda\envs\test\Library\include" >> ${env:GITHUB_ENV}
|
|
43
|
+
echo "GMP_LIB=C:\Miniconda\envs\test\Library\lib" >> ${env:GITHUB_ENV}
|
|
44
|
+
|
|
45
|
+
- name: Build wheels
|
|
46
|
+
uses: pypa/cibuildwheel@v3.2.0
|
|
47
|
+
env:
|
|
48
|
+
CIBW_ENVIRONMENT_MACOS: 'MACOSX_DEPLOYMENT_TARGET="15.0"'
|
|
49
|
+
CIBW_ARCHS_MACOS: "auto"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
- name: List generated wheels
|
|
53
|
+
run: ls ./wheelhouse/*
|
|
54
|
+
|
|
55
|
+
- uses: actions/upload-artifact@v4
|
|
56
|
+
with:
|
|
57
|
+
path: ./wheelhouse/*.whl
|
|
58
|
+
name: pytetwild-wheel-${{ matrix.os }}
|
|
59
|
+
|
|
60
|
+
build_sdist:
|
|
61
|
+
name: Build source distribution
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
steps:
|
|
64
|
+
- uses: actions/checkout@v4
|
|
65
|
+
with:
|
|
66
|
+
submodules: true
|
|
67
|
+
|
|
68
|
+
- name: Install system dependencies
|
|
69
|
+
run: |
|
|
70
|
+
sudo apt-get update
|
|
71
|
+
sudo apt-get install \
|
|
72
|
+
libblas-dev \
|
|
73
|
+
libboost-filesystem-dev \
|
|
74
|
+
libboost-system-dev \
|
|
75
|
+
libboost-thread-dev \
|
|
76
|
+
libglu1-mesa-dev \
|
|
77
|
+
libsuitesparse-dev \
|
|
78
|
+
libxi-dev \
|
|
79
|
+
libxcursor-dev \
|
|
80
|
+
libxinerama-dev \
|
|
81
|
+
libxrandr-dev \
|
|
82
|
+
libx11-dev \
|
|
83
|
+
libxcb1-dev \
|
|
84
|
+
libxau-dev \
|
|
85
|
+
libxdmcp-dev \
|
|
86
|
+
xorg-dev \
|
|
87
|
+
ccache
|
|
88
|
+
|
|
89
|
+
- name: Build source distribution
|
|
90
|
+
run: |
|
|
91
|
+
pipx run build --sdist
|
|
92
|
+
|
|
93
|
+
- name: Validate
|
|
94
|
+
run: |
|
|
95
|
+
pip install twine
|
|
96
|
+
twine check dist/*
|
|
97
|
+
|
|
98
|
+
- name: Install from dist/
|
|
99
|
+
run: |
|
|
100
|
+
sdist_file=$(ls dist/*.tar.gz)
|
|
101
|
+
pip install "$sdist_file[dev]"
|
|
102
|
+
|
|
103
|
+
- name: Test
|
|
104
|
+
run: pytest -vv
|
|
105
|
+
|
|
106
|
+
- uses: actions/upload-artifact@v4
|
|
107
|
+
with:
|
|
108
|
+
path: dist/*.tar.gz
|
|
109
|
+
name: pytetwild-sdist
|
|
110
|
+
|
|
111
|
+
release:
|
|
112
|
+
name: Release
|
|
113
|
+
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
|
|
114
|
+
needs: [build_wheels, build_sdist]
|
|
115
|
+
runs-on: ubuntu-latest
|
|
116
|
+
environment:
|
|
117
|
+
name: pypi
|
|
118
|
+
url: https://pypi.org/p/pytetwild
|
|
119
|
+
permissions:
|
|
120
|
+
id-token: write # this permission is mandatory for trusted publishing
|
|
121
|
+
steps:
|
|
122
|
+
- uses: actions/download-artifact@v4
|
|
123
|
+
- name: Flatten directory structure
|
|
124
|
+
run: |
|
|
125
|
+
mkdir -p dist/
|
|
126
|
+
find . -name '*.whl' -exec mv {} dist/ \;
|
|
127
|
+
find . -name '*.tar.gz' -exec mv {} dist/ \;
|
|
128
|
+
- name: Publish package distributions to PyPI
|
|
129
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
130
|
+
- name: Create GitHub Release
|
|
131
|
+
uses: softprops/action-gh-release@v1
|
|
132
|
+
with:
|
|
133
|
+
generate_release_notes: true
|
|
134
|
+
files: |
|
|
135
|
+
./**/*.whl
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Compiled source #
|
|
2
|
+
###################
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyd
|
|
5
|
+
*.so
|
|
6
|
+
*.o
|
|
7
|
+
__pycache__/
|
|
8
|
+
|
|
9
|
+
# OS generated files #
|
|
10
|
+
######################
|
|
11
|
+
.fuse_hidden*
|
|
12
|
+
*~
|
|
13
|
+
|
|
14
|
+
# Pip generated folders #
|
|
15
|
+
#########################
|
|
16
|
+
*.egg-info/
|
|
17
|
+
build/
|
|
18
|
+
dist/
|
|
19
|
+
|
|
20
|
+
# MISC
|
|
21
|
+
.mypy_cache
|
|
22
|
+
__tracked_surface.stl
|
|
23
|
+
|
|
24
|
+
# Mac
|
|
25
|
+
.DS_Store
|
|
26
|
+
**/.DS_Store
|
|
27
|
+
|
|
28
|
+
# emacs
|
|
29
|
+
*#
|
|
30
|
+
.#
|
|
31
|
+
flycheck*
|
|
32
|
+
|
|
33
|
+
# vim
|
|
34
|
+
*.swp
|
|
35
|
+
|
|
36
|
+
# PyCharm
|
|
37
|
+
.idea/
|
|
38
|
+
|
|
39
|
+
# virtual environments
|
|
40
|
+
venv/
|
|
41
|
+
.venv/
|
|
42
|
+
|
|
43
|
+
# VSCode
|
|
44
|
+
.vscode/
|
|
45
|
+
|
|
46
|
+
# skbuild
|
|
47
|
+
_skbuild/
|
|
48
|
+
|
|
49
|
+
# cmake
|
|
50
|
+
.ninja_deps
|
|
51
|
+
.ninja_log
|
|
52
|
+
.cmake
|
|
53
|
+
CMakeCache.txt
|
|
54
|
+
CMakeFiles/
|
|
55
|
+
CMakeInit.txt
|
|
56
|
+
CPackConfig.cmake
|
|
57
|
+
CPackSourceConfig.cmake
|
|
58
|
+
build.ninja
|
|
59
|
+
cmake_install.cmake
|
|
60
|
+
lib/
|
|
61
|
+
ALL_BUILD.vcxproj
|
|
62
|
+
ALL_BUILD.vcxproj.filters
|
|
63
|
+
INSTALL.vcxproj
|
|
64
|
+
INSTALL.vcxproj.filters
|
|
65
|
+
PACKAGE.vcxproj
|
|
66
|
+
PACKAGE.vcxproj.filters
|
|
67
|
+
PyfTetWildWrapper.dir/
|
|
68
|
+
PyfTetWildWrapper.vcxproj
|
|
69
|
+
PyfTetWildWrapper.vcxproj.filters
|
|
70
|
+
ZERO_CHECK.vcxproj
|
|
71
|
+
ZERO_CHECK.vcxproj.filters
|
|
72
|
+
fTetWildWrapper.sln
|
|
73
|
+
x64/
|
|
74
|
+
Release/
|
|
75
|
+
mpir.dll
|
|
76
|
+
|
|
77
|
+
# cibuildwheel
|
|
78
|
+
wheelhouse
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
rev: v0.4.3
|
|
4
|
+
hooks:
|
|
5
|
+
- id: ruff
|
|
6
|
+
args: [--fix, --exit-non-zero-on-fix]
|
|
7
|
+
exclude: ^(docs|tests)
|
|
8
|
+
- id: ruff-format
|
|
9
|
+
|
|
10
|
+
- repo: https://github.com/keewis/blackdoc
|
|
11
|
+
rev: v0.3.9
|
|
12
|
+
hooks:
|
|
13
|
+
- id: blackdoc
|
|
14
|
+
exclude: README.rst
|
|
15
|
+
|
|
16
|
+
- repo: https://github.com/numpy/numpydoc
|
|
17
|
+
rev: v1.7.0
|
|
18
|
+
hooks:
|
|
19
|
+
- id: numpydoc-validation
|
|
20
|
+
files: ^src/pytetwild
|
|
21
|
+
|
|
22
|
+
- repo: https://github.com/codespell-project/codespell
|
|
23
|
+
rev: v2.2.6
|
|
24
|
+
hooks:
|
|
25
|
+
- id: codespell
|
|
26
|
+
args: ["--skip=*.vt*"]
|
|
27
|
+
|
|
28
|
+
- repo: https://github.com/pycqa/pydocstyle
|
|
29
|
+
rev: 6.3.0
|
|
30
|
+
hooks:
|
|
31
|
+
- id: pydocstyle
|
|
32
|
+
additional_dependencies: [tomli==2.0.1]
|
|
33
|
+
files: ^src/pytetwild/.*\.py
|
|
34
|
+
|
|
35
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
36
|
+
rev: v4.6.0
|
|
37
|
+
hooks:
|
|
38
|
+
- id: check-merge-conflict
|
|
39
|
+
- id: debug-statements
|
|
40
|
+
- id: trailing-whitespace
|
|
41
|
+
|
|
42
|
+
- repo: https://github.com/pre-commit/mirrors-clang-format
|
|
43
|
+
rev: v18.1.4
|
|
44
|
+
hooks:
|
|
45
|
+
- id: clang-format
|
|
46
|
+
files: |
|
|
47
|
+
(?x)^(
|
|
48
|
+
src/FTetWildWrapper.cpp
|
|
49
|
+
)$
|
|
50
|
+
|
|
51
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
52
|
+
rev: v1.10.0
|
|
53
|
+
hooks:
|
|
54
|
+
- id: mypy
|
|
55
|
+
exclude: ^(docs/|tests)
|
|
56
|
+
additional_dependencies: [
|
|
57
|
+
"mypy-extensions==1.0.0",
|
|
58
|
+
"toml==0.10.2",
|
|
59
|
+
"npt_promote",
|
|
60
|
+
"numpy",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
64
|
+
rev: 0.28.2
|
|
65
|
+
hooks:
|
|
66
|
+
- id: check-github-workflows
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15...3.26)
|
|
2
|
+
project(fTetWildWrapper)
|
|
3
|
+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./src/pytetwild)
|
|
4
|
+
|
|
5
|
+
if($ENV{USE_MAVX})
|
|
6
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mavx")
|
|
7
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
|
|
8
|
+
endif()
|
|
9
|
+
|
|
10
|
+
# Set the path to the fTetWild project
|
|
11
|
+
set(fTetWild_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/fTetWild")
|
|
12
|
+
|
|
13
|
+
# Add the pybind11 submodule
|
|
14
|
+
set(PYBIND11_NEWPYTHON ON)
|
|
15
|
+
set(pybind11_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/pybind11")
|
|
16
|
+
add_subdirectory(${pybind11_DIR})
|
|
17
|
+
|
|
18
|
+
# Include the fTetWild project as a subdirectory
|
|
19
|
+
add_subdirectory(${fTetWild_DIR} EXCLUDE_FROM_ALL)
|
|
20
|
+
|
|
21
|
+
pybind11_add_module(PyfTetWildWrapper MODULE "${CMAKE_CURRENT_SOURCE_DIR}/src/FTetWildWrapper.cpp")
|
|
22
|
+
|
|
23
|
+
# Include directories from fTetWild required for the wrapper
|
|
24
|
+
target_include_directories(PyfTetWildWrapper PUBLIC ${fTetWild_DIR}/src)
|
|
25
|
+
|
|
26
|
+
# Link the FloatTetwild library (from fTetWild)
|
|
27
|
+
target_link_libraries(PyfTetWildWrapper PRIVATE FloatTetwild)
|
|
28
|
+
target_compile_features(PyfTetWildWrapper PUBLIC cxx_std_11)
|
|
29
|
+
|
|
30
|
+
if(WIN32)
|
|
31
|
+
set_target_properties(PyfTetWildWrapper PROPERTIES SUFFIX ".pyd")
|
|
32
|
+
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
|
|
33
|
+
string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG_UPPER)
|
|
34
|
+
set_target_properties(PyfTetWildWrapper PROPERTIES
|
|
35
|
+
RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} "${CMAKE_CURRENT_SOURCE_DIR}/src/pytetwild"
|
|
36
|
+
LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} "${CMAKE_CURRENT_SOURCE_DIR}/src/pytetwild"
|
|
37
|
+
)
|
|
38
|
+
endforeach()
|
|
39
|
+
endif()
|
|
40
|
+
|
|
41
|
+
install(TARGETS PyfTetWildWrapper LIBRARY DESTINATION ./pytetwild)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Contributing to Our Project
|
|
2
|
+
|
|
3
|
+
Thank you for considering contributions to our project! Here's how you can help:
|
|
4
|
+
|
|
5
|
+
## Setting Up for Development
|
|
6
|
+
|
|
7
|
+
We're using [scikit-build-core](https://github.com/scikit-build/scikit-build-core) for our build system and building using ``cmake``. You'll need a handful of system dependencies to build locally.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Linux
|
|
11
|
+
On Linux, install the following OS dependencies with:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
sudo apt-get update
|
|
15
|
+
sudo apt-get install libblas-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libglu1-mesa-dev libsuitesparse-dev xorg-dev ccache -y
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Windows
|
|
19
|
+
|
|
20
|
+
For contributors using Windows, we also have a setup process to ensure you can compile and test changes locally. Here's how to set up your development environment on Windows:
|
|
21
|
+
|
|
22
|
+
1. **Install Miniconda**: We use Miniconda to manage dependencies. Install it from [here](https://docs.anaconda.com/free/miniconda/index.html).
|
|
23
|
+
|
|
24
|
+
2. **Setup Miniconda and Install Dependencies**:
|
|
25
|
+
```
|
|
26
|
+
conda install -c conda-forge mpir -y
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. **Configure Environment Variables**:
|
|
30
|
+
Set the required environment variables for the build. This assumes PowerShell.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
$Env:GMP_INC = "C:\Miniconda\Library\include"
|
|
34
|
+
$Env:GMP_LIB = "C:\Miniconda\Library\lib"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Note: You may need to adjust these paths depending on if you use a non-global conda environment.
|
|
38
|
+
|
|
39
|
+
### Installation
|
|
40
|
+
To install the library in editable mode:
|
|
41
|
+
|
|
42
|
+
1. Clone the repository:
|
|
43
|
+
```
|
|
44
|
+
git clone https://github.com/pyvista/pytetwild
|
|
45
|
+
```
|
|
46
|
+
2. Initialize submodules:
|
|
47
|
+
```
|
|
48
|
+
git submodule update --init --recursive
|
|
49
|
+
```
|
|
50
|
+
3. Install the project in editable mode and include development dependencies:
|
|
51
|
+
```
|
|
52
|
+
pip install -e .[dev]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Note:** On windows, you'll need to copy the `mpir.dll` to your source directory with:
|
|
56
|
+
```
|
|
57
|
+
python -c "import shutil, os; shutil.copy(os.path.join(os.getenv('GMP_LIB'), '..', 'bin', 'mpir.dll'), './src/pytetwild')"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Code Style and Quality
|
|
61
|
+
|
|
62
|
+
- **Documentation**: Follow the `numpydoc` style for docstrings.
|
|
63
|
+
- **Linting**: We use `ruff` for code styling to ensure consistency.
|
|
64
|
+
- **Pre-commit**: Utilize `pre-commit` hooks to automate checks before commits. Set up your local environment with:
|
|
65
|
+
```
|
|
66
|
+
pip install pre-commit
|
|
67
|
+
pre-commit install
|
|
68
|
+
```
|
|
69
|
+
- **Testing**: Write tests for new features or bug fixes and run them using `pytest`. Tests are located in the `tests` directory.
|
|
70
|
+
|
|
71
|
+
## How to Contribute
|
|
72
|
+
|
|
73
|
+
- **Bugs and Feature Requests**: Submit them through our [issues page](https://github.com/pyvista/pytetwild/issues).
|
|
74
|
+
- **Code Contributions**: Make changes in a fork of this repository and submit a pull request (PR) through our [PR page](https://github.com/pyvista/pytetwild/pulls). Follow the standard fork-and-PR workflow for contributions.
|
|
75
|
+
|
|
76
|
+
## Community and Conduct
|
|
77
|
+
|
|
78
|
+
- We expect all contributors to follow our [Code of Conduct](https://github.com/pyvista/pyvista/blob/main/CODE_OF_CONDUCT.md) to maintain a welcoming and inclusive community.
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
- Contributions are subject to the project's license as found in the [LICENSE.md](./LICENSE.md) file.
|
|
83
|
+
|
|
84
|
+
We welcome your contributions and look forward to collaborating with you!
|