pytetwild 0.1.dev1__tar.gz → 0.2.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.2.0/.clang-format +13 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/.github/workflows/build-and-deploy.yml +50 -14
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/.gitignore +21 -1
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/.pre-commit-config.yaml +8 -10
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/CMakeLists.txt +24 -13
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/PKG-INFO +60 -25
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/README.rst +48 -15
- pytetwild-0.2.0/exploded-sphere.png +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/pyproject.toml +46 -17
- pytetwild-0.2.0/src/FTetWildWrapper.cpp +473 -0
- pytetwild-0.2.0/src/array_support.h +75 -0
- pytetwild-0.2.0/src/fTetWild/.github/workflows/continuous.yml +116 -0
- pytetwild-0.2.0/src/fTetWild/CMakeLists.txt +184 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/README.md +3 -2
- pytetwild-0.2.0/src/fTetWild/cmake/DownloadProject.CMakeLists.cmake.in +17 -0
- pytetwild-0.2.0/src/fTetWild/cmake/FloatTetwildDependencies.cmake +186 -0
- pytetwild-0.2.0/src/fTetWild/cmake/Warnings.cmake +146 -0
- pytetwild-0.2.0/src/fTetWild/cmake/geogram.cmake +89 -0
- pytetwild-0.2.0/src/fTetWild/src/EdgeCollapsing.cpp +633 -0
- pytetwild-0.2.0/src/fTetWild/src/LocalOperations.cpp +1663 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/MeshImprovement.cpp +26 -68
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Parameters.h +10 -1
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Simplification.cpp +350 -290
- pytetwild-0.2.0/src/fTetWild/src/TriangleInsertion.cpp +3537 -0
- pytetwild-0.2.0/src/fTetWild/src/VertexSmoothing.cpp +352 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/CMakeLists.txt +0 -4
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/main.cpp +40 -27
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/CMakeLists.txt +10 -5
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/test_predicates.cpp +2 -1
- pytetwild-0.2.0/src/pytetwild/PyfTetWildWrapper.pyi +29 -0
- pytetwild-0.2.0/src/pytetwild/__init__.py +4 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/pytetwild/_version.py +1 -0
- pytetwild-0.2.0/src/pytetwild/pytetwild.py +365 -0
- pytetwild-0.2.0/tests/test_data/box.stl +0 -0
- pytetwild-0.2.0/tests/test_data/sphere.stl +0 -0
- pytetwild-0.2.0/tests/test_pytetwild.py +156 -0
- pytetwild-0.2.0/tools/audit_wheel.sh +9 -0
- pytetwild-0.2.0/tools/extract-deps.py +8 -0
- pytetwild-0.1.dev1/exploded-sphere.png +0 -0
- pytetwild-0.1.dev1/src/FTetWildWrapper.cpp +0 -266
- pytetwild-0.1.dev1/src/fTetWild/.git +0 -1
- pytetwild-0.1.dev1/src/fTetWild/.github/workflows/continuous.yml +0 -167
- pytetwild-0.1.dev1/src/fTetWild/CMakeLists.txt +0 -188
- pytetwild-0.1.dev1/src/fTetWild/cmake/DownloadProject.CMakeLists.cmake.in +0 -17
- pytetwild-0.1.dev1/src/fTetWild/cmake/FloatTetwildDependencies.cmake +0 -122
- pytetwild-0.1.dev1/src/fTetWild/cmake/FloatTetwildDownloadExternal.cmake +0 -124
- pytetwild-0.1.dev1/src/fTetWild/cmake/Warnings.cmake +0 -160
- pytetwild-0.1.dev1/src/fTetWild/cmake/geogram.cmake +0 -93
- pytetwild-0.1.dev1/src/fTetWild/python/build_cut_table.py +0 -1165
- pytetwild-0.1.dev1/src/fTetWild/src/EdgeCollapsing.cpp +0 -595
- pytetwild-0.1.dev1/src/fTetWild/src/LocalOperations.cpp +0 -1455
- pytetwild-0.1.dev1/src/fTetWild/src/TriangleInsertion.cpp +0 -3145
- pytetwild-0.1.dev1/src/fTetWild/src/VertexSmoothing.cpp +0 -333
- pytetwild-0.1.dev1/src/fTetWild/src/external/FastWindingNumber.cpp +0 -39
- pytetwild-0.1.dev1/src/fTetWild/src/external/FastWindingNumber.hpp +0 -8
- pytetwild-0.1.dev1/src/fTetWild/src/external/WindingNumber.h +0 -7401
- pytetwild-0.1.dev1/src/pybind11/.appveyor.yml +0 -35
- pytetwild-0.1.dev1/src/pybind11/.clang-format +0 -38
- pytetwild-0.1.dev1/src/pybind11/.clang-tidy +0 -77
- pytetwild-0.1.dev1/src/pybind11/.cmake-format.yaml +0 -73
- pytetwild-0.1.dev1/src/pybind11/.codespell-ignore-lines +0 -24
- pytetwild-0.1.dev1/src/pybind11/.git +0 -1
- pytetwild-0.1.dev1/src/pybind11/.gitattributes +0 -1
- pytetwild-0.1.dev1/src/pybind11/.github/CODEOWNERS +0 -9
- pytetwild-0.1.dev1/src/pybind11/.github/CONTRIBUTING.md +0 -388
- pytetwild-0.1.dev1/src/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -61
- pytetwild-0.1.dev1/src/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
- pytetwild-0.1.dev1/src/pybind11/.github/dependabot.yml +0 -15
- pytetwild-0.1.dev1/src/pybind11/.github/labeler.yml +0 -8
- pytetwild-0.1.dev1/src/pybind11/.github/labeler_merged.yml +0 -3
- pytetwild-0.1.dev1/src/pybind11/.github/matchers/pylint.json +0 -32
- pytetwild-0.1.dev1/src/pybind11/.github/pull_request_template.md +0 -19
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/ci.yml +0 -1190
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/configure.yml +0 -92
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/format.yml +0 -60
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/labeler.yml +0 -25
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/pip.yml +0 -114
- pytetwild-0.1.dev1/src/pybind11/.github/workflows/upstream.yml +0 -116
- pytetwild-0.1.dev1/src/pybind11/.gitignore +0 -46
- pytetwild-0.1.dev1/src/pybind11/.pre-commit-config.yaml +0 -155
- pytetwild-0.1.dev1/src/pybind11/.readthedocs.yml +0 -20
- pytetwild-0.1.dev1/src/pybind11/CMakeLists.txt +0 -363
- pytetwild-0.1.dev1/src/pybind11/LICENSE +0 -29
- pytetwild-0.1.dev1/src/pybind11/MANIFEST.in +0 -6
- pytetwild-0.1.dev1/src/pybind11/README.rst +0 -180
- pytetwild-0.1.dev1/src/pybind11/SECURITY.md +0 -13
- pytetwild-0.1.dev1/src/pybind11/docs/Doxyfile +0 -21
- pytetwild-0.1.dev1/src/pybind11/docs/Makefile +0 -192
- pytetwild-0.1.dev1/src/pybind11/docs/_static/css/custom.css +0 -3
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/chrono.rst +0 -81
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/custom.rst +0 -93
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/eigen.rst +0 -310
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/functional.rst +0 -109
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/index.rst +0 -43
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/overview.rst +0 -170
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/stl.rst +0 -249
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/cast/strings.rst +0 -296
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/classes.rst +0 -1335
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/embedding.rst +0 -262
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/exceptions.rst +0 -401
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/functions.rst +0 -614
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/misc.rst +0 -429
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/pycpp/index.rst +0 -13
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/pycpp/numpy.rst +0 -455
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/pycpp/object.rst +0 -286
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
- pytetwild-0.1.dev1/src/pybind11/docs/advanced/smart_ptrs.rst +0 -174
- pytetwild-0.1.dev1/src/pybind11/docs/basics.rst +0 -307
- pytetwild-0.1.dev1/src/pybind11/docs/benchmark.py +0 -87
- pytetwild-0.1.dev1/src/pybind11/docs/benchmark.rst +0 -95
- pytetwild-0.1.dev1/src/pybind11/docs/changelog.rst +0 -2832
- pytetwild-0.1.dev1/src/pybind11/docs/classes.rst +0 -555
- pytetwild-0.1.dev1/src/pybind11/docs/cmake/index.rst +0 -8
- pytetwild-0.1.dev1/src/pybind11/docs/compiling.rst +0 -649
- pytetwild-0.1.dev1/src/pybind11/docs/conf.py +0 -368
- pytetwild-0.1.dev1/src/pybind11/docs/faq.rst +0 -308
- pytetwild-0.1.dev1/src/pybind11/docs/index.rst +0 -48
- pytetwild-0.1.dev1/src/pybind11/docs/installing.rst +0 -105
- pytetwild-0.1.dev1/src/pybind11/docs/limitations.rst +0 -72
- pytetwild-0.1.dev1/src/pybind11/docs/pybind11-logo.png +0 -0
- pytetwild-0.1.dev1/src/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- pytetwild-0.1.dev1/src/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
- pytetwild-0.1.dev1/src/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- pytetwild-0.1.dev1/src/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
- pytetwild-0.1.dev1/src/pybind11/docs/reference.rst +0 -130
- pytetwild-0.1.dev1/src/pybind11/docs/release.rst +0 -143
- pytetwild-0.1.dev1/src/pybind11/docs/requirements.txt +0 -6
- pytetwild-0.1.dev1/src/pybind11/docs/upgrade.rst +0 -566
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/attr.h +0 -690
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/buffer_info.h +0 -208
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/cast.h +0 -1730
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/chrono.h +0 -225
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/common.h +0 -2
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/complex.h +0 -74
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/class.h +0 -748
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/common.h +0 -1263
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/descr.h +0 -171
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/init.h +0 -434
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/internals.h +0 -662
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/type_caster_base.h +0 -1214
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/detail/typeid.h +0 -65
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/eigen/common.h +0 -9
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/eigen/matrix.h +0 -714
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/eigen/tensor.h +0 -516
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/eigen.h +0 -12
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/embed.h +0 -316
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/eval.h +0 -156
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/functional.h +0 -137
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/gil.h +0 -247
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/gil_safe_call_once.h +0 -91
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/iostream.h +0 -265
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/numpy.h +0 -2020
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/operators.h +0 -202
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/options.h +0 -92
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/pybind11.h +0 -2942
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/pytypes.h +0 -2573
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/stl/filesystem.h +0 -116
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/stl.h +0 -447
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/stl_bind.h +0 -823
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/type_caster_pyobject_ptr.h +0 -61
- pytetwild-0.1.dev1/src/pybind11/include/pybind11/typing.h +0 -117
- pytetwild-0.1.dev1/src/pybind11/noxfile.py +0 -107
- pytetwild-0.1.dev1/src/pybind11/pybind11/__init__.py +0 -17
- pytetwild-0.1.dev1/src/pybind11/pybind11/__main__.py +0 -62
- pytetwild-0.1.dev1/src/pybind11/pybind11/_version.py +0 -12
- pytetwild-0.1.dev1/src/pybind11/pybind11/commands.py +0 -37
- pytetwild-0.1.dev1/src/pybind11/pybind11/py.typed +0 -0
- pytetwild-0.1.dev1/src/pybind11/pybind11/setup_helpers.py +0 -500
- pytetwild-0.1.dev1/src/pybind11/pyproject.toml +0 -95
- pytetwild-0.1.dev1/src/pybind11/setup.cfg +0 -43
- pytetwild-0.1.dev1/src/pybind11/setup.py +0 -150
- pytetwild-0.1.dev1/src/pybind11/tests/CMakeLists.txt +0 -585
- pytetwild-0.1.dev1/src/pybind11/tests/conftest.py +0 -221
- pytetwild-0.1.dev1/src/pybind11/tests/constructor_stats.h +0 -322
- pytetwild-0.1.dev1/src/pybind11/tests/cross_module_gil_utils.cpp +0 -108
- pytetwild-0.1.dev1/src/pybind11/tests/cross_module_interleaved_error_already_set.cpp +0 -51
- pytetwild-0.1.dev1/src/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +0 -14
- pytetwild-0.1.dev1/src/pybind11/tests/env.py +0 -27
- pytetwild-0.1.dev1/src/pybind11/tests/extra_python_package/pytest.ini +0 -0
- pytetwild-0.1.dev1/src/pybind11/tests/extra_python_package/test_files.py +0 -293
- pytetwild-0.1.dev1/src/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- pytetwild-0.1.dev1/src/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -151
- pytetwild-0.1.dev1/src/pybind11/tests/local_bindings.h +0 -92
- pytetwild-0.1.dev1/src/pybind11/tests/object.h +0 -205
- pytetwild-0.1.dev1/src/pybind11/tests/pybind11_cross_module_tests.cpp +0 -149
- pytetwild-0.1.dev1/src/pybind11/tests/pybind11_tests.cpp +0 -123
- pytetwild-0.1.dev1/src/pybind11/tests/pybind11_tests.h +0 -85
- pytetwild-0.1.dev1/src/pybind11/tests/pytest.ini +0 -22
- pytetwild-0.1.dev1/src/pybind11/tests/requirements.txt +0 -15
- pytetwild-0.1.dev1/src/pybind11/tests/test_async.cpp +0 -25
- pytetwild-0.1.dev1/src/pybind11/tests/test_async.py +0 -24
- pytetwild-0.1.dev1/src/pybind11/tests/test_buffers.cpp +0 -259
- pytetwild-0.1.dev1/src/pybind11/tests/test_buffers.py +0 -228
- pytetwild-0.1.dev1/src/pybind11/tests/test_builtin_casters.cpp +0 -392
- pytetwild-0.1.dev1/src/pybind11/tests/test_builtin_casters.py +0 -528
- pytetwild-0.1.dev1/src/pybind11/tests/test_call_policies.cpp +0 -115
- pytetwild-0.1.dev1/src/pybind11/tests/test_call_policies.py +0 -247
- pytetwild-0.1.dev1/src/pybind11/tests/test_callbacks.cpp +0 -280
- pytetwild-0.1.dev1/src/pybind11/tests/test_callbacks.py +0 -225
- pytetwild-0.1.dev1/src/pybind11/tests/test_chrono.cpp +0 -81
- pytetwild-0.1.dev1/src/pybind11/tests/test_chrono.py +0 -205
- pytetwild-0.1.dev1/src/pybind11/tests/test_class.cpp +0 -657
- pytetwild-0.1.dev1/src/pybind11/tests/test_class.py +0 -499
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -80
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/embed.cpp +0 -23
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/main.cpp +0 -6
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -47
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -41
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -47
- pytetwild-0.1.dev1/src/pybind11/tests/test_cmake_build/test.py +0 -8
- pytetwild-0.1.dev1/src/pybind11/tests/test_const_name.cpp +0 -55
- pytetwild-0.1.dev1/src/pybind11/tests/test_const_name.py +0 -29
- pytetwild-0.1.dev1/src/pybind11/tests/test_constants_and_functions.cpp +0 -154
- pytetwild-0.1.dev1/src/pybind11/tests/test_constants_and_functions.py +0 -56
- pytetwild-0.1.dev1/src/pybind11/tests/test_copy_move.cpp +0 -533
- pytetwild-0.1.dev1/src/pybind11/tests/test_copy_move.py +0 -132
- pytetwild-0.1.dev1/src/pybind11/tests/test_custom_type_casters.cpp +0 -209
- pytetwild-0.1.dev1/src/pybind11/tests/test_custom_type_casters.py +0 -122
- pytetwild-0.1.dev1/src/pybind11/tests/test_custom_type_setup.cpp +0 -41
- pytetwild-0.1.dev1/src/pybind11/tests/test_custom_type_setup.py +0 -48
- pytetwild-0.1.dev1/src/pybind11/tests/test_docstring_options.cpp +0 -141
- pytetwild-0.1.dev1/src/pybind11/tests/test_docstring_options.py +0 -64
- pytetwild-0.1.dev1/src/pybind11/tests/test_eigen_matrix.cpp +0 -445
- pytetwild-0.1.dev1/src/pybind11/tests/test_eigen_matrix.py +0 -812
- pytetwild-0.1.dev1/src/pybind11/tests/test_eigen_tensor.cpp +0 -18
- pytetwild-0.1.dev1/src/pybind11/tests/test_eigen_tensor.inl +0 -333
- pytetwild-0.1.dev1/src/pybind11/tests/test_eigen_tensor.py +0 -288
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/CMakeLists.txt +0 -47
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/catch.cpp +0 -43
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/external_module.cpp +0 -20
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/test_interpreter.cpp +0 -488
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/test_interpreter.py +0 -14
- pytetwild-0.1.dev1/src/pybind11/tests/test_embed/test_trampoline.py +0 -16
- pytetwild-0.1.dev1/src/pybind11/tests/test_enum.cpp +0 -133
- pytetwild-0.1.dev1/src/pybind11/tests/test_enum.py +0 -269
- pytetwild-0.1.dev1/src/pybind11/tests/test_eval.cpp +0 -118
- pytetwild-0.1.dev1/src/pybind11/tests/test_eval.py +0 -50
- pytetwild-0.1.dev1/src/pybind11/tests/test_eval_call.py +0 -4
- pytetwild-0.1.dev1/src/pybind11/tests/test_exceptions.cpp +0 -385
- pytetwild-0.1.dev1/src/pybind11/tests/test_exceptions.h +0 -13
- pytetwild-0.1.dev1/src/pybind11/tests/test_exceptions.py +0 -421
- pytetwild-0.1.dev1/src/pybind11/tests/test_factory_constructors.cpp +0 -430
- pytetwild-0.1.dev1/src/pybind11/tests/test_factory_constructors.py +0 -516
- pytetwild-0.1.dev1/src/pybind11/tests/test_gil_scoped.cpp +0 -144
- pytetwild-0.1.dev1/src/pybind11/tests/test_gil_scoped.py +0 -242
- pytetwild-0.1.dev1/src/pybind11/tests/test_iostream.cpp +0 -126
- pytetwild-0.1.dev1/src/pybind11/tests/test_iostream.py +0 -291
- pytetwild-0.1.dev1/src/pybind11/tests/test_kwargs_and_defaults.cpp +0 -327
- pytetwild-0.1.dev1/src/pybind11/tests/test_kwargs_and_defaults.py +0 -425
- pytetwild-0.1.dev1/src/pybind11/tests/test_local_bindings.cpp +0 -106
- pytetwild-0.1.dev1/src/pybind11/tests/test_local_bindings.py +0 -257
- pytetwild-0.1.dev1/src/pybind11/tests/test_methods_and_attributes.cpp +0 -493
- pytetwild-0.1.dev1/src/pybind11/tests/test_methods_and_attributes.py +0 -537
- pytetwild-0.1.dev1/src/pybind11/tests/test_modules.cpp +0 -125
- pytetwild-0.1.dev1/src/pybind11/tests/test_modules.py +0 -116
- pytetwild-0.1.dev1/src/pybind11/tests/test_multiple_inheritance.cpp +0 -341
- pytetwild-0.1.dev1/src/pybind11/tests/test_multiple_inheritance.py +0 -493
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_array.cpp +0 -552
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_array.py +0 -668
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_dtypes.cpp +0 -614
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_dtypes.py +0 -440
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_vectorize.cpp +0 -107
- pytetwild-0.1.dev1/src/pybind11/tests/test_numpy_vectorize.py +0 -266
- pytetwild-0.1.dev1/src/pybind11/tests/test_opaque_types.cpp +0 -77
- pytetwild-0.1.dev1/src/pybind11/tests/test_opaque_types.py +0 -58
- pytetwild-0.1.dev1/src/pybind11/tests/test_operator_overloading.cpp +0 -281
- pytetwild-0.1.dev1/src/pybind11/tests/test_operator_overloading.py +0 -151
- pytetwild-0.1.dev1/src/pybind11/tests/test_pickling.cpp +0 -194
- pytetwild-0.1.dev1/src/pybind11/tests/test_pickling.py +0 -93
- pytetwild-0.1.dev1/src/pybind11/tests/test_python_multiple_inheritance.cpp +0 -45
- pytetwild-0.1.dev1/src/pybind11/tests/test_python_multiple_inheritance.py +0 -35
- pytetwild-0.1.dev1/src/pybind11/tests/test_pytypes.cpp +0 -835
- pytetwild-0.1.dev1/src/pybind11/tests/test_pytypes.py +0 -947
- pytetwild-0.1.dev1/src/pybind11/tests/test_sequences_and_iterators.cpp +0 -600
- pytetwild-0.1.dev1/src/pybind11/tests/test_sequences_and_iterators.py +0 -265
- pytetwild-0.1.dev1/src/pybind11/tests/test_smart_ptr.cpp +0 -473
- pytetwild-0.1.dev1/src/pybind11/tests/test_smart_ptr.py +0 -315
- pytetwild-0.1.dev1/src/pybind11/tests/test_stl.cpp +0 -551
- pytetwild-0.1.dev1/src/pybind11/tests/test_stl.py +0 -381
- pytetwild-0.1.dev1/src/pybind11/tests/test_stl_binders.cpp +0 -276
- pytetwild-0.1.dev1/src/pybind11/tests/test_stl_binders.py +0 -393
- pytetwild-0.1.dev1/src/pybind11/tests/test_tagbased_polymorphic.cpp +0 -147
- pytetwild-0.1.dev1/src/pybind11/tests/test_tagbased_polymorphic.py +0 -28
- pytetwild-0.1.dev1/src/pybind11/tests/test_thread.cpp +0 -66
- pytetwild-0.1.dev1/src/pybind11/tests/test_thread.py +0 -42
- pytetwild-0.1.dev1/src/pybind11/tests/test_type_caster_pyobject_ptr.cpp +0 -130
- pytetwild-0.1.dev1/src/pybind11/tests/test_type_caster_pyobject_ptr.py +0 -104
- pytetwild-0.1.dev1/src/pybind11/tests/test_union.cpp +0 -22
- pytetwild-0.1.dev1/src/pybind11/tests/test_union.py +0 -8
- pytetwild-0.1.dev1/src/pybind11/tests/test_unnamed_namespace_a.cpp +0 -38
- pytetwild-0.1.dev1/src/pybind11/tests/test_unnamed_namespace_a.py +0 -34
- pytetwild-0.1.dev1/src/pybind11/tests/test_unnamed_namespace_b.cpp +0 -13
- pytetwild-0.1.dev1/src/pybind11/tests/test_unnamed_namespace_b.py +0 -5
- pytetwild-0.1.dev1/src/pybind11/tests/test_vector_unique_ptr_member.cpp +0 -54
- pytetwild-0.1.dev1/src/pybind11/tests/test_vector_unique_ptr_member.py +0 -14
- pytetwild-0.1.dev1/src/pybind11/tests/test_virtual_functions.cpp +0 -592
- pytetwild-0.1.dev1/src/pybind11/tests/test_virtual_functions.py +0 -458
- pytetwild-0.1.dev1/src/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
- pytetwild-0.1.dev1/src/pybind11/tests/valgrind-python.supp +0 -117
- pytetwild-0.1.dev1/src/pybind11/tools/FindCatch.cmake +0 -76
- pytetwild-0.1.dev1/src/pybind11/tools/FindEigen3.cmake +0 -86
- pytetwild-0.1.dev1/src/pybind11/tools/FindPythonLibsNew.cmake +0 -310
- pytetwild-0.1.dev1/src/pybind11/tools/JoinPaths.cmake +0 -23
- pytetwild-0.1.dev1/src/pybind11/tools/check-style.sh +0 -44
- pytetwild-0.1.dev1/src/pybind11/tools/cmake_uninstall.cmake.in +0 -23
- pytetwild-0.1.dev1/src/pybind11/tools/codespell_ignore_lines_from_errors.py +0 -39
- pytetwild-0.1.dev1/src/pybind11/tools/libsize.py +0 -36
- pytetwild-0.1.dev1/src/pybind11/tools/make_changelog.py +0 -88
- pytetwild-0.1.dev1/src/pybind11/tools/pybind11.pc.in +0 -7
- pytetwild-0.1.dev1/src/pybind11/tools/pybind11Common.cmake +0 -415
- pytetwild-0.1.dev1/src/pybind11/tools/pybind11Config.cmake.in +0 -233
- pytetwild-0.1.dev1/src/pybind11/tools/pybind11NewTools.cmake +0 -311
- pytetwild-0.1.dev1/src/pybind11/tools/pybind11Tools.cmake +0 -239
- pytetwild-0.1.dev1/src/pybind11/tools/pyproject.toml +0 -3
- pytetwild-0.1.dev1/src/pybind11/tools/setup_global.py.in +0 -63
- pytetwild-0.1.dev1/src/pybind11/tools/setup_main.py.in +0 -44
- pytetwild-0.1.dev1/src/pytetwild/__init__.py +0 -3
- pytetwild-0.1.dev1/src/pytetwild/pytetwild.py +0 -136
- pytetwild-0.1.dev1/tests/test_pytetwild.py +0 -108
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/.gitmodules +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/CONTRIBUTING.md +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/LICENSE +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/.clang-format +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/.gitignore +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/.travis.yml +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/LICENSE.MPL2 +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/DownloadProject.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/FindGMPfTetWild.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/FindMPFR.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/FloatTetwildUtils.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/PrependCurrentPath.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/cmake/UseColors.cmake +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/figs/1k.jpg +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/python/generate-table-code.py +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/python/plot-tet.py +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/python/save_all_confs.py +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/replicability_instructions.htm +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/AABBWrapper.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/AABBWrapper.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/CMakeLists.txt +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/CSGTreeParser.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/CSGTreeParser.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/CutMesh.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/CutMesh.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/EdgeCollapsing.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/EdgeSplitting.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/EdgeSplitting.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/EdgeSwapping.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/EdgeSwapping.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/FloatTetDelaunay.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/FloatTetDelaunay.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/FloatTetwild.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/FloatTetwild.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/LocalOperations.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Logger.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Logger.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Mesh.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Mesh.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/MeshIO.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/MeshIO.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/MeshImprovement.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Simplification.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Statistics.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/TriangleInsertion.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/Types.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/VertexSmoothing.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/auto_table.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/auto_table.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/Exception.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/MshLoader.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/MshLoader.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/MshSaver.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/MshSaver.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/Predicates.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/Predicates.hpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/Rational.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/bfs_orient.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/bfs_orient.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/getRSS.c +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/get_mem.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/get_mem.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/mesh_AABB.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/mesh_AABB.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/predicates.c +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/triangle_triangle_intersection.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/external/triangle_triangle_intersection_old.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/intersections.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/src/intersections.h +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/bunny.off +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/main.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/test_subdivision.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/test_table.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/test_tree.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/fTetWild/tests/tests.cpp +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/src/pytetwild/py.typed +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/tests/test_data/test_surf.ply +0 -0
- {pytetwild-0.1.dev1 → pytetwild-0.2.0}/tests/test_data/test_tets.msh +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
# We'll use defaults from the LLVM style, but with 4 columns indentation.
|
|
3
|
+
BasedOnStyle: LLVM
|
|
4
|
+
IndentWidth: 4
|
|
5
|
+
---
|
|
6
|
+
Language: Cpp
|
|
7
|
+
# Force pointers to the type for C++.
|
|
8
|
+
DerivePointerAlignment: false
|
|
9
|
+
PointerAlignment: Right
|
|
10
|
+
ColumnLimit: 94
|
|
11
|
+
AlignAfterOpenBracket: AlwaysBreak
|
|
12
|
+
BinPackArguments: false
|
|
13
|
+
BinPackParameters: false
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
pull_request:
|
|
5
5
|
push:
|
|
6
6
|
tags:
|
|
7
|
-
- "*"
|
|
7
|
+
- "v*"
|
|
8
8
|
branches:
|
|
9
9
|
- "main"
|
|
10
10
|
|
|
@@ -19,21 +19,21 @@ jobs:
|
|
|
19
19
|
strategy:
|
|
20
20
|
fail-fast: false
|
|
21
21
|
matrix:
|
|
22
|
-
os: [ubuntu-
|
|
22
|
+
os: [ubuntu-24.04, windows-2025, macos-latest, macos-15-intel]
|
|
23
23
|
|
|
24
24
|
steps:
|
|
25
|
-
- uses: actions/checkout@
|
|
25
|
+
- uses: actions/checkout@v6
|
|
26
26
|
with:
|
|
27
27
|
submodules: true
|
|
28
28
|
|
|
29
29
|
- name: Setup Miniconda (Windows)
|
|
30
30
|
if: runner.os == 'Windows'
|
|
31
|
-
uses: conda-incubator/setup-miniconda@v3.0
|
|
31
|
+
uses: conda-incubator/setup-miniconda@v3.3.0
|
|
32
32
|
|
|
33
33
|
- name: Install Dependencies (Windows)
|
|
34
34
|
if: runner.os == 'Windows'
|
|
35
35
|
shell: powershell
|
|
36
|
-
run: conda install -c conda-forge mpir -y
|
|
36
|
+
run: conda install -c conda-forge mpir zlib -y
|
|
37
37
|
|
|
38
38
|
- name: Set env (Windows)
|
|
39
39
|
if: runner.os == 'Windows'
|
|
@@ -43,21 +43,58 @@ jobs:
|
|
|
43
43
|
echo "GMP_LIB=C:\Miniconda\envs\test\Library\lib" >> ${env:GITHUB_ENV}
|
|
44
44
|
|
|
45
45
|
- name: Build wheels
|
|
46
|
-
uses: pypa/cibuildwheel@
|
|
46
|
+
uses: pypa/cibuildwheel@v3.3.1
|
|
47
|
+
env:
|
|
48
|
+
CIBW_ENVIRONMENT_MACOS: 'MACOSX_DEPLOYMENT_TARGET="15.0"'
|
|
49
|
+
CIBW_ARCHS_MACOS: "auto"
|
|
47
50
|
|
|
48
51
|
- name: List generated wheels
|
|
49
52
|
run: ls ./wheelhouse/*
|
|
50
53
|
|
|
51
|
-
- uses: actions/upload-artifact@
|
|
54
|
+
- uses: actions/upload-artifact@v6
|
|
52
55
|
with:
|
|
53
56
|
path: ./wheelhouse/*.whl
|
|
54
|
-
name: pytetwild-
|
|
57
|
+
name: pytetwild-wheels-${{ matrix.os }}
|
|
58
|
+
|
|
59
|
+
test_abi3:
|
|
60
|
+
name: Test ABI3 wheels
|
|
61
|
+
needs: build_wheels
|
|
62
|
+
runs-on: ${{ matrix.os }}
|
|
63
|
+
strategy:
|
|
64
|
+
fail-fast: false
|
|
65
|
+
matrix:
|
|
66
|
+
python-version: ['3.13'] # , '3.14'] # skip 3.14 testing until vtk 9.6 is released
|
|
67
|
+
os: [ubuntu-24.04, windows-2025, macos-15-intel] # must match build_wheels os
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@v6
|
|
70
|
+
- uses: actions/setup-python@v6
|
|
71
|
+
with:
|
|
72
|
+
python-version: ${{ matrix.python-version }}
|
|
73
|
+
- uses: actions/download-artifact@v7
|
|
74
|
+
with:
|
|
75
|
+
pattern: pytetwild-wheels-${{ matrix.os }}
|
|
76
|
+
path: wheels/
|
|
77
|
+
- name: Find ABI3 wheel
|
|
78
|
+
id: find_wheel
|
|
79
|
+
shell: bash
|
|
80
|
+
run: |
|
|
81
|
+
WHEEL=$(ls wheels/*abi3*.whl | head -n 1)
|
|
82
|
+
echo "wheel=$WHEEL" >> "$GITHUB_OUTPUT"
|
|
83
|
+
- name: Install wheel
|
|
84
|
+
run: pip install "${{ steps.find_wheel.outputs.wheel }}"
|
|
85
|
+
- name: Install test dependencies from source
|
|
86
|
+
run: |
|
|
87
|
+
pip install tomli
|
|
88
|
+
python tools/extract-deps.py
|
|
89
|
+
pip install -r requirements-tests.txt
|
|
90
|
+
- name: Run tests
|
|
91
|
+
run: pytest
|
|
55
92
|
|
|
56
93
|
build_sdist:
|
|
57
94
|
name: Build source distribution
|
|
58
95
|
runs-on: ubuntu-latest
|
|
59
96
|
steps:
|
|
60
|
-
- uses: actions/checkout@
|
|
97
|
+
- uses: actions/checkout@v6
|
|
61
98
|
with:
|
|
62
99
|
submodules: true
|
|
63
100
|
|
|
@@ -71,7 +108,6 @@ jobs:
|
|
|
71
108
|
libboost-thread-dev \
|
|
72
109
|
libglu1-mesa-dev \
|
|
73
110
|
libsuitesparse-dev \
|
|
74
|
-
xorg-dev \
|
|
75
111
|
ccache
|
|
76
112
|
|
|
77
113
|
- name: Build source distribution
|
|
@@ -86,12 +122,12 @@ jobs:
|
|
|
86
122
|
- name: Install from dist/
|
|
87
123
|
run: |
|
|
88
124
|
sdist_file=$(ls dist/*.tar.gz)
|
|
89
|
-
pip install "$sdist_file[
|
|
125
|
+
pip install "$sdist_file[tests]"
|
|
90
126
|
|
|
91
127
|
- name: Test
|
|
92
128
|
run: pytest -vv
|
|
93
129
|
|
|
94
|
-
- uses: actions/upload-artifact@
|
|
130
|
+
- uses: actions/upload-artifact@v6
|
|
95
131
|
with:
|
|
96
132
|
path: dist/*.tar.gz
|
|
97
133
|
name: pytetwild-sdist
|
|
@@ -107,7 +143,7 @@ jobs:
|
|
|
107
143
|
permissions:
|
|
108
144
|
id-token: write # this permission is mandatory for trusted publishing
|
|
109
145
|
steps:
|
|
110
|
-
- uses: actions/download-artifact@
|
|
146
|
+
- uses: actions/download-artifact@v7
|
|
111
147
|
- name: Flatten directory structure
|
|
112
148
|
run: |
|
|
113
149
|
mkdir -p dist/
|
|
@@ -116,7 +152,7 @@ jobs:
|
|
|
116
152
|
- name: Publish package distributions to PyPI
|
|
117
153
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
118
154
|
- name: Create GitHub Release
|
|
119
|
-
uses: softprops/action-gh-release@
|
|
155
|
+
uses: softprops/action-gh-release@v2
|
|
120
156
|
with:
|
|
121
157
|
generate_release_notes: true
|
|
122
158
|
files: |
|
|
@@ -45,10 +45,13 @@ venv/
|
|
|
45
45
|
|
|
46
46
|
# skbuild
|
|
47
47
|
_skbuild/
|
|
48
|
+
.skbuild-info.json
|
|
49
|
+
compile_commands.json
|
|
48
50
|
|
|
49
51
|
# cmake
|
|
50
52
|
.ninja_deps
|
|
51
53
|
.ninja_log
|
|
54
|
+
.cmake
|
|
52
55
|
CMakeCache.txt
|
|
53
56
|
CMakeFiles/
|
|
54
57
|
CMakeInit.txt
|
|
@@ -72,6 +75,23 @@ fTetWildWrapper.sln
|
|
|
72
75
|
x64/
|
|
73
76
|
Release/
|
|
74
77
|
mpir.dll
|
|
78
|
+
_deps
|
|
79
|
+
appleclang*
|
|
80
|
+
gnu_14.3_cxx17_64_release/
|
|
81
|
+
src/GPATH
|
|
82
|
+
src/GRTAGS
|
|
83
|
+
src/GTAGS
|
|
84
|
+
.clangd
|
|
85
|
+
libnanobind-static-abi3.a
|
|
75
86
|
|
|
76
87
|
# cibuildwheel
|
|
77
|
-
wheelhouse
|
|
88
|
+
wheelhouse
|
|
89
|
+
|
|
90
|
+
# test and temp files
|
|
91
|
+
tests/test_data/csgtree.json
|
|
92
|
+
__b_vs.xyz
|
|
93
|
+
__cutting.stl
|
|
94
|
+
__opt.stl
|
|
95
|
+
|
|
96
|
+
# nixos
|
|
97
|
+
shell.nix
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: v0.
|
|
3
|
+
rev: v0.14.14
|
|
4
4
|
hooks:
|
|
5
5
|
- id: ruff
|
|
6
6
|
args: [--fix, --exit-non-zero-on-fix]
|
|
@@ -8,19 +8,19 @@ repos:
|
|
|
8
8
|
- id: ruff-format
|
|
9
9
|
|
|
10
10
|
- repo: https://github.com/keewis/blackdoc
|
|
11
|
-
rev: v0.
|
|
11
|
+
rev: v0.4.6
|
|
12
12
|
hooks:
|
|
13
13
|
- id: blackdoc
|
|
14
14
|
exclude: README.rst
|
|
15
15
|
|
|
16
16
|
- repo: https://github.com/numpy/numpydoc
|
|
17
|
-
rev: v1.
|
|
17
|
+
rev: v1.10.0
|
|
18
18
|
hooks:
|
|
19
19
|
- id: numpydoc-validation
|
|
20
20
|
files: ^src/pytetwild
|
|
21
21
|
|
|
22
22
|
- repo: https://github.com/codespell-project/codespell
|
|
23
|
-
rev: v2.
|
|
23
|
+
rev: v2.4.1
|
|
24
24
|
hooks:
|
|
25
25
|
- id: codespell
|
|
26
26
|
args: ["--skip=*.vt*"]
|
|
@@ -33,14 +33,14 @@ repos:
|
|
|
33
33
|
files: ^src/pytetwild/.*\.py
|
|
34
34
|
|
|
35
35
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
36
|
-
rev:
|
|
36
|
+
rev: v6.0.0
|
|
37
37
|
hooks:
|
|
38
38
|
- id: check-merge-conflict
|
|
39
39
|
- id: debug-statements
|
|
40
40
|
- id: trailing-whitespace
|
|
41
41
|
|
|
42
42
|
- repo: https://github.com/pre-commit/mirrors-clang-format
|
|
43
|
-
rev:
|
|
43
|
+
rev: v21.1.8
|
|
44
44
|
hooks:
|
|
45
45
|
- id: clang-format
|
|
46
46
|
files: |
|
|
@@ -49,18 +49,16 @@ repos:
|
|
|
49
49
|
)$
|
|
50
50
|
|
|
51
51
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
52
|
-
rev: v1.
|
|
52
|
+
rev: v1.19.1
|
|
53
53
|
hooks:
|
|
54
54
|
- id: mypy
|
|
55
55
|
exclude: ^(docs/|tests)
|
|
56
56
|
additional_dependencies: [
|
|
57
|
-
"mypy-extensions==1.0.0",
|
|
58
57
|
"toml==0.10.2",
|
|
59
|
-
"npt_promote",
|
|
60
58
|
"numpy",
|
|
61
59
|
]
|
|
62
60
|
|
|
63
61
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
64
|
-
rev: 0.
|
|
62
|
+
rev: 0.36.1
|
|
65
63
|
hooks:
|
|
66
64
|
- id: check-github-workflows
|
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
cmake_minimum_required(VERSION 3.15...3.26)
|
|
2
|
-
project(
|
|
3
|
-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./src/pytetwild)
|
|
2
|
+
project(fTetWildWrapper_project LANGUAGES CXX)
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
find_package(Python 3.10
|
|
5
|
+
REQUIRED COMPONENTS Interpreter Development.Module
|
|
6
|
+
OPTIONAL_COMPONENTS Development.SABIModule)
|
|
7
|
+
find_package(nanobind CONFIG REQUIRED)
|
|
8
|
+
|
|
9
|
+
nanobind_add_module(
|
|
10
|
+
# name of the extension
|
|
11
|
+
PyfTetWildWrapper
|
|
12
|
+
|
|
13
|
+
# Target the stable ABI for Python 3.12+, which reduces
|
|
14
|
+
# the number of binary wheels that must be built. This
|
|
15
|
+
# does nothing on older Python versions
|
|
16
|
+
STABLE_ABI
|
|
17
|
+
|
|
18
|
+
src/FTetWildWrapper.cpp
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./src/pytetwild)
|
|
9
22
|
|
|
10
23
|
# Set the path to the fTetWild project
|
|
11
24
|
set(fTetWild_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/fTetWild")
|
|
12
25
|
|
|
13
|
-
#
|
|
14
|
-
set(
|
|
15
|
-
set(
|
|
16
|
-
add_subdirectory(${pybind11_DIR})
|
|
26
|
+
# Enable aggressive optimization
|
|
27
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
|
28
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
|
|
17
29
|
|
|
18
30
|
# Include the fTetWild project as a subdirectory
|
|
19
31
|
add_subdirectory(${fTetWild_DIR} EXCLUDE_FROM_ALL)
|
|
20
32
|
|
|
21
|
-
pybind11_add_module(PyfTetWildWrapper MODULE "${CMAKE_CURRENT_SOURCE_DIR}/src/FTetWildWrapper.cpp")
|
|
22
|
-
|
|
23
33
|
# Include directories from fTetWild required for the wrapper
|
|
24
34
|
target_include_directories(PyfTetWildWrapper PUBLIC ${fTetWild_DIR}/src)
|
|
25
35
|
|
|
@@ -27,6 +37,7 @@ target_include_directories(PyfTetWildWrapper PUBLIC ${fTetWild_DIR}/src)
|
|
|
27
37
|
target_link_libraries(PyfTetWildWrapper PRIVATE FloatTetwild)
|
|
28
38
|
target_compile_features(PyfTetWildWrapper PUBLIC cxx_std_11)
|
|
29
39
|
|
|
40
|
+
# still necessary?
|
|
30
41
|
if(WIN32)
|
|
31
42
|
set_target_properties(PyfTetWildWrapper PROPERTIES SUFFIX ".pyd")
|
|
32
43
|
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
|
|
@@ -38,4 +49,4 @@ if(WIN32)
|
|
|
38
49
|
endforeach()
|
|
39
50
|
endif()
|
|
40
51
|
|
|
41
|
-
install(TARGETS PyfTetWildWrapper LIBRARY DESTINATION
|
|
52
|
+
install(TARGETS PyfTetWildWrapper LIBRARY DESTINATION pytetwild)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: pytetwild
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Python wrapper of fTetWild
|
|
5
5
|
Author-Email: Alex Kaszynski <akascap@gmail.com>
|
|
6
6
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -10,20 +10,22 @@ Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
|
|
|
10
10
|
Classifier: Operating System :: Microsoft :: Windows
|
|
11
11
|
Classifier: Operating System :: POSIX
|
|
12
12
|
Classifier: Operating System :: MacOS
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
|
+
Requires-Python: <3.15,>=3.10
|
|
18
19
|
Requires-Dist: numpy
|
|
19
|
-
Requires-Dist: pyvista; extra == "all"
|
|
20
|
-
Requires-Dist: pytest; extra == "dev"
|
|
21
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
22
|
-
Requires-Dist: pyvista; extra == "dev"
|
|
23
|
-
Requires-Dist: scipy; extra == "dev"
|
|
24
|
-
Requires-Dist: meshio; extra == "dev"
|
|
25
20
|
Provides-Extra: all
|
|
21
|
+
Requires-Dist: pyvista; extra == "all"
|
|
22
|
+
Provides-Extra: tests
|
|
23
|
+
Requires-Dist: pytest; extra == "tests"
|
|
24
|
+
Requires-Dist: pyvista; extra == "tests"
|
|
25
|
+
Requires-Dist: scipy; extra == "tests"
|
|
26
|
+
Requires-Dist: meshio; extra == "tests"
|
|
26
27
|
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
27
29
|
Description-Content-Type: text/x-rst
|
|
28
30
|
|
|
29
31
|
pytetwild
|
|
@@ -45,13 +47,17 @@ Python wrapper around the efficient C++ library for tetrahedral meshing provided
|
|
|
45
47
|
Installation
|
|
46
48
|
************
|
|
47
49
|
|
|
48
|
-
We have pre-built wheels for Python 3.
|
|
50
|
+
We have pre-built wheels for Python 3.10 - Python 3.14 for Windows, Linux, and macOS.
|
|
49
51
|
|
|
50
52
|
The recommended way to install ``pytetwild`` is via PyPI:
|
|
51
53
|
|
|
52
54
|
.. code:: sh
|
|
53
55
|
|
|
54
|
-
pip install pytetwild
|
|
56
|
+
pip install pytetwild[all]
|
|
57
|
+
|
|
58
|
+
This installs ``pyvista`` by default, which you can use to tetrahedralize
|
|
59
|
+
sufrace meshes from PyVista. Alternatively you can just install with ``pip
|
|
60
|
+
install pytetwild`` for a lighter install.
|
|
55
61
|
|
|
56
62
|
You can also clone the repository and install it from source, but since there's
|
|
57
63
|
C++ involved, the build is a bit more complicated. See ``CONTRIBUTING.md`` for
|
|
@@ -61,7 +67,8 @@ more details.
|
|
|
61
67
|
Usage
|
|
62
68
|
*****
|
|
63
69
|
|
|
64
|
-
To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_
|
|
70
|
+
To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_,
|
|
71
|
+
you'll need to first install ``pyvista`` as it's not a dependency and then run:
|
|
65
72
|
|
|
66
73
|
.. code:: py
|
|
67
74
|
|
|
@@ -74,18 +81,22 @@ To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_:
|
|
|
74
81
|
|
|
75
82
|
# Convert the surface mesh to a tetrahedral mesh. For this example let's
|
|
76
83
|
# use a coarse mesh
|
|
77
|
-
tetrahedral_mesh = pytetwild.tetrahedralize_pv(surface_mesh, edge_length_fac=1)
|
|
84
|
+
tetrahedral_mesh = pytetwild.tetrahedralize_pv(surface_mesh, edge_length_fac=1)
|
|
78
85
|
|
|
79
86
|
# Visualize the tetrahedral mesh in an "exploded" view
|
|
80
|
-
tetrahedral_mesh.explode(
|
|
87
|
+
tetrahedral_mesh.explode(0.5).plot(
|
|
88
|
+
show_edges=True, zoom=1.6, ssao=True, anti_aliasing="ssaa"
|
|
89
|
+
)
|
|
90
|
+
|
|
81
91
|
|
|
82
92
|
.. image:: https://github.com/pyvista/pytetwild/raw/main/exploded-sphere.png
|
|
83
93
|
|
|
84
94
|
You can also work with raw arrays. Here's a simple cube that we turn into tetrahedra.
|
|
85
95
|
|
|
86
|
-
.. code::
|
|
96
|
+
.. code:: py
|
|
87
97
|
|
|
88
98
|
import numpy as np
|
|
99
|
+
import pytetwild
|
|
89
100
|
|
|
90
101
|
# Define vertices of the cube
|
|
91
102
|
vertices = np.array([
|
|
@@ -114,25 +125,49 @@ You can also work with raw arrays. Here's a simple cube that we turn into tetrah
|
|
|
114
125
|
|
|
115
126
|
Usage - Options
|
|
116
127
|
---------------
|
|
117
|
-
We've surfaced a
|
|
118
|
-
``tetrahedralize`` and ``tetrahedralize_pv
|
|
128
|
+
We've surfaced a several parameters to each of our interfaces
|
|
129
|
+
``tetrahedralize`` and ``tetrahedralize_pv``:
|
|
119
130
|
|
|
120
131
|
.. code::
|
|
121
132
|
|
|
122
|
-
|
|
123
|
-
|
|
133
|
+
Parameters
|
|
134
|
+
----------
|
|
124
135
|
edge_length_fac : float, default: 0.05
|
|
125
|
-
Tetrahedral edge length as a function of bounding box
|
|
126
|
-
default ideal edge length is bb/20 (bounding box divided by
|
|
127
|
-
|
|
136
|
+
Tetrahedral edge length as a function of bounding box diagonal. The
|
|
137
|
+
default ideal edge length is ``bb/20`` (bounding box divided by
|
|
138
|
+
20). Ignored when ``edge_length_abs`` is input.
|
|
139
|
+
edge_length_abs : float, optional
|
|
140
|
+
Absolute ideal edge length. When input ``edge_length_fac`` is ignored.
|
|
141
|
+
optimize : bool, default: True
|
|
128
142
|
Improve the minimum scaled Jacobean for each cell. This leads to higher
|
|
129
|
-
cell quality at the expense of computation time.
|
|
143
|
+
cell quality at the expense of computation time. Optimization level is
|
|
144
|
+
dependent on ``stop_energy`` and ``num_opt_iter``.
|
|
145
|
+
simplify : bool, default: True
|
|
146
|
+
Simplfiy the input mesh surface before tetrahedralization.
|
|
147
|
+
epsilon : float, default 1e-3
|
|
148
|
+
Envelop size, specifying the maximum distance of the output surface
|
|
149
|
+
from the input surface, relative to the bounding box size.
|
|
150
|
+
stop_energy : float, default: 10.0
|
|
151
|
+
The mesh optimization stops when the conformal AMIPS energy reaches
|
|
152
|
+
``stop_energy``.
|
|
153
|
+
coarsen : bool, default: False
|
|
154
|
+
Coarsen the output as much as possible, while maintaining the mesh
|
|
155
|
+
quality.
|
|
156
|
+
num_threads : int, default: 0
|
|
157
|
+
Set number of threads used. 0 (default) uses all available cores.
|
|
158
|
+
num_opt_iter : int, default: 80
|
|
159
|
+
Maximum number of optimization iterations if ``optimize=True``.
|
|
160
|
+
loglevel : int, default: 6
|
|
161
|
+
Set log level (0 = most verbose, 6 = minimal output).
|
|
162
|
+
quiet : bool, default: False
|
|
163
|
+
Disable all output. Overrides ``loglevel``.
|
|
164
|
+
|
|
130
165
|
|
|
131
166
|
|
|
132
167
|
License and Acknowledgments
|
|
133
168
|
***************************
|
|
134
169
|
|
|
135
|
-
This project relies on ``fTetWild`` and
|
|
170
|
+
This project relies on ``fTetWild`` and credit goes to the original authors for
|
|
136
171
|
their efficient C++ library for tetrahedral meshing. That work is licensed
|
|
137
172
|
under the Mozilla Public License v2.0.
|
|
138
173
|
|
|
@@ -17,13 +17,17 @@ Python wrapper around the efficient C++ library for tetrahedral meshing provided
|
|
|
17
17
|
Installation
|
|
18
18
|
************
|
|
19
19
|
|
|
20
|
-
We have pre-built wheels for Python 3.
|
|
20
|
+
We have pre-built wheels for Python 3.10 - Python 3.14 for Windows, Linux, and macOS.
|
|
21
21
|
|
|
22
22
|
The recommended way to install ``pytetwild`` is via PyPI:
|
|
23
23
|
|
|
24
24
|
.. code:: sh
|
|
25
25
|
|
|
26
|
-
pip install pytetwild
|
|
26
|
+
pip install pytetwild[all]
|
|
27
|
+
|
|
28
|
+
This installs ``pyvista`` by default, which you can use to tetrahedralize
|
|
29
|
+
sufrace meshes from PyVista. Alternatively you can just install with ``pip
|
|
30
|
+
install pytetwild`` for a lighter install.
|
|
27
31
|
|
|
28
32
|
You can also clone the repository and install it from source, but since there's
|
|
29
33
|
C++ involved, the build is a bit more complicated. See ``CONTRIBUTING.md`` for
|
|
@@ -33,7 +37,8 @@ more details.
|
|
|
33
37
|
Usage
|
|
34
38
|
*****
|
|
35
39
|
|
|
36
|
-
To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_
|
|
40
|
+
To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_,
|
|
41
|
+
you'll need to first install ``pyvista`` as it's not a dependency and then run:
|
|
37
42
|
|
|
38
43
|
.. code:: py
|
|
39
44
|
|
|
@@ -46,18 +51,22 @@ To tetrahedralize a surface mesh from `PyVista <https://docs.pyvista.org>`_:
|
|
|
46
51
|
|
|
47
52
|
# Convert the surface mesh to a tetrahedral mesh. For this example let's
|
|
48
53
|
# use a coarse mesh
|
|
49
|
-
tetrahedral_mesh = pytetwild.tetrahedralize_pv(surface_mesh, edge_length_fac=1)
|
|
54
|
+
tetrahedral_mesh = pytetwild.tetrahedralize_pv(surface_mesh, edge_length_fac=1)
|
|
50
55
|
|
|
51
56
|
# Visualize the tetrahedral mesh in an "exploded" view
|
|
52
|
-
tetrahedral_mesh.explode(
|
|
57
|
+
tetrahedral_mesh.explode(0.5).plot(
|
|
58
|
+
show_edges=True, zoom=1.6, ssao=True, anti_aliasing="ssaa"
|
|
59
|
+
)
|
|
60
|
+
|
|
53
61
|
|
|
54
62
|
.. image:: https://github.com/pyvista/pytetwild/raw/main/exploded-sphere.png
|
|
55
63
|
|
|
56
64
|
You can also work with raw arrays. Here's a simple cube that we turn into tetrahedra.
|
|
57
65
|
|
|
58
|
-
.. code::
|
|
66
|
+
.. code:: py
|
|
59
67
|
|
|
60
68
|
import numpy as np
|
|
69
|
+
import pytetwild
|
|
61
70
|
|
|
62
71
|
# Define vertices of the cube
|
|
63
72
|
vertices = np.array([
|
|
@@ -86,25 +95,49 @@ You can also work with raw arrays. Here's a simple cube that we turn into tetrah
|
|
|
86
95
|
|
|
87
96
|
Usage - Options
|
|
88
97
|
---------------
|
|
89
|
-
We've surfaced a
|
|
90
|
-
``tetrahedralize`` and ``tetrahedralize_pv
|
|
98
|
+
We've surfaced a several parameters to each of our interfaces
|
|
99
|
+
``tetrahedralize`` and ``tetrahedralize_pv``:
|
|
91
100
|
|
|
92
101
|
.. code::
|
|
93
102
|
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
Parameters
|
|
104
|
+
----------
|
|
96
105
|
edge_length_fac : float, default: 0.05
|
|
97
|
-
Tetrahedral edge length as a function of bounding box
|
|
98
|
-
default ideal edge length is bb/20 (bounding box divided by
|
|
99
|
-
|
|
106
|
+
Tetrahedral edge length as a function of bounding box diagonal. The
|
|
107
|
+
default ideal edge length is ``bb/20`` (bounding box divided by
|
|
108
|
+
20). Ignored when ``edge_length_abs`` is input.
|
|
109
|
+
edge_length_abs : float, optional
|
|
110
|
+
Absolute ideal edge length. When input ``edge_length_fac`` is ignored.
|
|
111
|
+
optimize : bool, default: True
|
|
100
112
|
Improve the minimum scaled Jacobean for each cell. This leads to higher
|
|
101
|
-
cell quality at the expense of computation time.
|
|
113
|
+
cell quality at the expense of computation time. Optimization level is
|
|
114
|
+
dependent on ``stop_energy`` and ``num_opt_iter``.
|
|
115
|
+
simplify : bool, default: True
|
|
116
|
+
Simplfiy the input mesh surface before tetrahedralization.
|
|
117
|
+
epsilon : float, default 1e-3
|
|
118
|
+
Envelop size, specifying the maximum distance of the output surface
|
|
119
|
+
from the input surface, relative to the bounding box size.
|
|
120
|
+
stop_energy : float, default: 10.0
|
|
121
|
+
The mesh optimization stops when the conformal AMIPS energy reaches
|
|
122
|
+
``stop_energy``.
|
|
123
|
+
coarsen : bool, default: False
|
|
124
|
+
Coarsen the output as much as possible, while maintaining the mesh
|
|
125
|
+
quality.
|
|
126
|
+
num_threads : int, default: 0
|
|
127
|
+
Set number of threads used. 0 (default) uses all available cores.
|
|
128
|
+
num_opt_iter : int, default: 80
|
|
129
|
+
Maximum number of optimization iterations if ``optimize=True``.
|
|
130
|
+
loglevel : int, default: 6
|
|
131
|
+
Set log level (0 = most verbose, 6 = minimal output).
|
|
132
|
+
quiet : bool, default: False
|
|
133
|
+
Disable all output. Overrides ``loglevel``.
|
|
134
|
+
|
|
102
135
|
|
|
103
136
|
|
|
104
137
|
License and Acknowledgments
|
|
105
138
|
***************************
|
|
106
139
|
|
|
107
|
-
This project relies on ``fTetWild`` and
|
|
140
|
+
This project relies on ``fTetWild`` and credit goes to the original authors for
|
|
108
141
|
their efficient C++ library for tetrahedral meshing. That work is licensed
|
|
109
142
|
under the Mozilla Public License v2.0.
|
|
110
143
|
|
|
Binary file
|