Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: elalish/manifold
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.3.1a
Choose a base ref
...
head repository: elalish/manifold
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jan 13, 2024

  1. Copy the full SHA
    c0fb376 View commit details
  2. Copy the full SHA
    afc64f2 View commit details

Commits on Jan 14, 2024

  1. Extrude and Resolve should be static on Manifold. (#692)

    * Extrude and Resolve should be static on Manifold.
    
    * Fixed unit test for extrude/revolve issue.
    
    * More test issues fixed.
    
    * Clean up formatting.
    
    * Placed extrude and revolve on both CrossSection and Manifold.
    
    * Formatting.
    briansturgill authored Jan 14, 2024
    Copy the full SHA
    8ad5f8e View commit details
  2. cmake updates (#696)

    * cmake packaging
    
    * compatibility
    
    * update
    
    * update
    
    * tbb
    
    * fix rpath stuff
    
    * update tbb
    
    * fix nix
    
    * fix bugs
    
    * fix emscripten
    
    * PIC
    
    * CI stuff
    
    * only publish if on master
    
    * assimp dependency for meshIO
    
    * add cmake consumer test
    
    * remove THRUST_HOST_SYSTEM flag
    
    * fix CI permission issue
    
    * cmake minimum required
    
    * install without admin privilege on mac
    
    * fix install directory
    
    * update RELEASE_CHECKLIST.md
    pca006132 authored Jan 14, 2024
    Copy the full SHA
    e27c9c1 View commit details

Commits on Jan 16, 2024

  1. fix sdist submodule (#709)

    pca006132 authored Jan 16, 2024
    Copy the full SHA
    d7cbcb8 View commit details
  2. Copy the full SHA
    f407e43 View commit details
  3. Install Python module into site-packages (#704)

    Python_SITEARCH is not writeable by build_nix (tbb) job.
    cjmayo authored Jan 16, 2024
    Copy the full SHA
    9018b2a View commit details

Commits on Jan 20, 2024

  1. Fixed float overflow (#714)

    * Set up test for subtraction of a very large cuboid
    
    Test case for #712 - these glb
    inputs were generated from manifolds that succeeded in producing a
    Boolean output, but (on one platform but not another) the Status() call
    on the output boolean manifold crashed.
    
    (A test for calling Status() on the output captured on the crashing
    platform (in case there was something specifically bad about that
    particular output on that platform) was tried, but the result was simply
    a successful Status() call even with that specific input - hence, that
    additional test is not included in this commit.)
    
    * fixed 0 * inf
    
    * switch to ASSERT
    
    * tighten test
    
    ---------
    
    Co-authored-by: Clifford Yapp <238416+starseeker@users.noreply.github.com>
    elalish and starseeker authored Jan 20, 2024
    Copy the full SHA
    dbb0ca7 View commit details

Commits on Jan 23, 2024

  1. Copy the full SHA
    aa88959 View commit details

Commits on Jan 27, 2024

  1. Copy the full SHA
    9690305 View commit details

Commits on Jan 28, 2024

  1. GLM 1.0 compatibility (#721)

    Using glm/gtx/compatibility.hpp without GLM_ENABLE_EXPERIMENTAL has
    become an error:
    
    error: #error "GLM: GLM_GTX_compatibility is an experimental extension
                   and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL
    	       before including it, if you really want to use it."
    cjmayo authored Jan 28, 2024
    Copy the full SHA
    0b7ee87 View commit details
  2. python/gen_docs.py tidy-up (#724)

    * python/gen_docs: Use raw strings in method_key()
    
    Resolve Python 3.12 invalid escape sequence warnings.
    
    * python/gen_docs: Remove unused f-string and md5 import
    cjmayo authored Jan 28, 2024
    Copy the full SHA
    a9055a8 View commit details
  3. Fix manifold3d module being built again in the install phase (#725)

    With add_custom_target() "the target has no output file and is always
    considered out of date".
    cjmayo authored Jan 28, 2024
    Copy the full SHA
    65b2ef8 View commit details

Commits on Jan 29, 2024

  1. optimize triangulator for msvc (#722)

    optimize for msvc
    pca006132 authored Jan 29, 2024
    Copy the full SHA
    1635864 View commit details
  2. fix cube performance (#717)

    * fix cube performance
    
    * fix test
    pca006132 authored Jan 29, 2024
    Copy the full SHA
    3b8282e View commit details

Commits on Feb 5, 2024

  1. Copy the full SHA
    9c1517e View commit details
  2. Fix to 2D HullImpl problem. (#730)

    * Fixed 2D Hull problem
    
    * Ran document formatting.
    
    * Using public.h CCW, refactored as requested.
    
    * Decided that precision value should 0.
    briansturgill authored Feb 5, 2024
    3
    Copy the full SHA
    c9ae400 View commit details
  3. Copy the full SHA
    5bdb8bc View commit details

Commits on Feb 6, 2024

  1. Editor buttons (#733)

    * added undo, redo, format
    
    * share button works
    
    * cleanup
    
    * reset scroll
    
    * addressing feedback
    elalish authored Feb 6, 2024
    Copy the full SHA
    dd67e99 View commit details

Commits on Feb 8, 2024

  1. Copy the full SHA
    79f735c View commit details

Commits on Feb 9, 2024

  1. Copy the full SHA
    994956d View commit details

Commits on Feb 13, 2024

  1. [python] add MeshGL::Merge() to python API (#739)

    * [python] add MeshGL::Merge() to python API
    
    * [python] mesh.merge in all_apis.py
    wrongbad authored Feb 13, 2024
    Copy the full SHA
    4395ab6 View commit details

Commits on Feb 15, 2024

  1. test windows dll build (#743)

    * test windows dll build
    
    * export all symbols on windows
    
    * skip manifoldc_test on emscripten
    
    * try fix windows build
    
    * fix
    
    * fix2
    
    * fix manifoldc on emscripten
    
    * fix
    
    * fix manifoldc
    
    * fixes
    
    * fix windows ci
    
    * fix python flags
    
    * document windows shenanigans
    
    * I hate windows
    
    * tell users we are downloading thrust from source
    pca006132 authored Feb 15, 2024
    Copy the full SHA
    f3c5ada View commit details

Commits on Feb 16, 2024

  1. Fix sparseindices (#742)

    * accept size_t for Vec
    
    * Prepare a test case for "SparseIndices too large" core dump
    
    * fix python docstring deps
    
    * fix compilation errors
    
    * limit sdf hashtable size
    
    * another fix to hashtable
    
    * log2(0) is undefined
    
    * fix formatting
    
    * Revert "fix compilation errors"
    
    This reverts commit adfb86c.
    
    * fix size_t stuff
    
    * remove processOverlap setting in test
    
    * fix hashtable
    
    * vertex number limit
    
    * address comments
    pca006132 authored Feb 16, 2024
    Copy the full SHA
    d59b9b9 View commit details

Commits on Feb 18, 2024

  1. Copy the full SHA
    cae5a01 View commit details

Commits on Feb 19, 2024

  1. 1
    Copy the full SHA
    c03a5ac View commit details

Commits on Mar 3, 2024

  1. Refine To Length (#741)

    * sketched out implementation
    
    * started PartitionQuad
    
    * added edge directions
    
    * compiles
    
    * first test passing
    
    * minor progress
    
    * simplify
    
    * refactor
    
    * fixed interior verts
    
    * getting manifold results
    
    * improved triangulation
    
    * finished algorithm
    
    * fixed fans
    
    * a few fixes
    
    * fixed 3-2-2
    
    * handle reversed triangles
    
    * use Vec
    
    * fixed another bug
    
    * refine working
    
    * replaced old subdivide
    
    * fix allocation error
    
    * fixed sphere
    
    * fix cache
    
    * fixed undefined behavior
    
    * fix rounding error
    
    * updated test
    
    * cleanup
    
    * add lock
    
    * added properties support
    
    * tightened test
    
    * fixed edge colors
    
    * fixed corners
    
    * only duplicate props when necessary
    
    * fix boolean props
    
    * fixed manifoldness error
    
    * fixed some narrow triangles
    
    * fix compile
    
    * added bindings
    
    * fix formatting
    
    * addressing feedback
    
    * revert edge divisions change
    elalish authored Mar 3, 2024
    Copy the full SHA
    dc4afa9 View commit details
  2. add docs about vertex properties, etc. (#755)

    add docs
    elalish authored Mar 3, 2024
    Copy the full SHA
    2ddbd0a View commit details

Commits on Mar 4, 2024

  1. v2.4 (#757)

    * v2.4.0
    
    * fix cmake version
    elalish authored Mar 4, 2024
    Copy the full SHA
    d437097 View commit details
  2. v2.4.1 (#758)

    update actions
    elalish authored Mar 4, 2024
    Copy the full SHA
    a67aa13 View commit details
  3. v2.4.2 (#759)

    elalish authored Mar 4, 2024
    Copy the full SHA
    c6801c8 View commit details

Commits on Mar 5, 2024

  1. v2.4.3 (#760)

    fix artifacts
    elalish authored Mar 5, 2024
    Copy the full SHA
    f54e535 View commit details
  2. v2.4.4 (#761)

    elalish authored Mar 5, 2024
    Copy the full SHA
    e073141 View commit details
  3. v2.4.5 (#762)

    remove skip condition
    elalish authored Mar 5, 2024
    Copy the full SHA
    22d94d5 View commit details

Commits on Mar 11, 2024

  1. Copy the full SHA
    9b1d255 View commit details

Commits on Mar 19, 2024

  1. CalculateNormals and Smooth (#771)

    * started implementation
    
    * update to Vec
    
    * refactor
    
    * snap normals to faces
    
    * added flat face sharpening
    
    * added Smooth member
    
    * Smooth working
    
    * refactor SetNormals
    
    * calculateNormals runs
    
    * CalculateNormals works
    
    * update test
    
    * add bindings
    
    * fix python bindings
    
    * fix format
    
    * Smooth -> SmoothOut
    
    * a few fixes
    
    * weird format bug
    
    * addressing feedback
    
    * update docs
    elalish authored Mar 19, 2024
    Copy the full SHA
    c9ec169 View commit details

Commits on Mar 26, 2024

  1. Smooth By Normals (#776)

    * SmoothByNormals compiles
    
    * added ForVert
    
    * tests pass
    
    * added bindings
    
    * stupid formatting...
    
    * fix typo
    
    * small fix
    
    * aligned weights
    elalish authored Mar 26, 2024
    Copy the full SHA
    3e05284 View commit details
  2. Use ForVert (#778)

    * updated a bunch of do loops to ForVert
    
    * more cleanup
    elalish authored Mar 26, 2024
    Copy the full SHA
    32eefe9 View commit details

Commits on Mar 30, 2024

  1. fix glm install (#782)

    * fix glm install
    
    * try again?
    
    * proper C binding install
    
    * fix glm install
    pca006132 authored Mar 30, 2024
    Copy the full SHA
    7872959 View commit details

Commits on Apr 2, 2024

  1. Add MinGap function (#765)

    * Add tests for intersection
    
    * Add POC MinGap implementation and tests
    
    * Add tests where closest point falls on the triangle's face or on one of the edges
    
    * Create TriangleDistance declaration
    
    * Delete intersect tests
    
    * Add stub MinGap definition
    
    * Add triangle distance impl
    
    * Add comments
    
    * Fix tests
    
    * Fix build
    
    * Use collider
    
    * Collider exploration
    
    * Collider impl, cleanup
    
    * Use par transform
    
    * Revert settings.json, add comments
    
    * Add comments
    
    * Move tri_dist to utils
    
    * Delete unnecessary include
    
    * Create lambda for bounding box expansion
    
    * Move duplicate logic to lambda
    
    * Cleanup
    
    * Use floats instead of doubles, use glm::clamp instead of own implementation
    
    * User ternaries
    
    * Remove DistanceTriangleTriangleSquared out params
    
    * Move MinGap impl to Impl
    
    * Use std::array instead of C-style
    
    * Modify MinGap test cases for clarity, add overlapping tri_dist test
    
    * Add c, wasm, python bindings
    
    * Fix formatting
    
    * Clean up comments
    
    * Test whether faceboxes need to be sorted
    
    * Add min_gap example to all_apis.py
    
    * Fix formatting
    
    * Clean up python binding
    
    * Fix edge to edge test case
    
    * Test BVH culling
    
    * Remove sorting of other manifold's boxes
    
    * Use collider_ member, remove sorting
    
    * Move tests to manifold_test.cpp
    
    * Remove whitespace
    
    * Rename some tests for clarity
    
    * Remove redundant test, modify test for edge to edge test for clarity
    
    * Fix comments
    
    * Parallelize narrow phase
    
    * Reduce sphere res in test case to not cause out of memory error
    
    * Add complex test case
    
    * Remove unnecessary cast
    
    * Refactor functor is lambda
    mleleszi authored Apr 2, 2024
    Copy the full SHA
    3258152 View commit details

Commits on Apr 13, 2024

  1. Revert "Use ForVert" (#788)

    Revert "Use ForVert (#778)"
    
    This reverts commit 32eefe9.
    elalish authored Apr 13, 2024
    Copy the full SHA
    8d67ba3 View commit details

Commits on Apr 16, 2024

  1. Use forVert (#789)

    * updated a bunch of do loops to ForVert
    
    * more cleanup
    
    * Hull failure case
    
    * test cleanup
    
    * test helper cleanup
    
    * fixed edge_op
    
    ---------
    
    Co-authored-by: John Collins <jmicahc@gmail.com>
    elalish and cartesian-theatrics authored Apr 16, 2024
    Copy the full SHA
    c60df1b View commit details

Commits on Apr 25, 2024

  1. Split boolean tests (#792)

    * Split Boolean test
    
    * Fix name
    
    * formatting
    
    * move cubes test
    
    * formatting
    
    * format
    
    * move tests
    
    * update complex_boolean
    dasoya authored Apr 25, 2024
    Copy the full SHA
    a8b8bf7 View commit details
  2. Smooth quads (#793)

    * switched to ivec4, tests still pass
    
    * added partition quad support
    
    * added quad support for property interp
    
    * forming quad tangents
    
    * convex barycentric
    
    * fix interpolation
    
    * added linear quad interp
    
    * added quad smoothing
    
    * fixed vec out of range
    
    * all tests pass
    
    * fixed quad tangents
    
    * tightened quad test
    
    * cleanup
    
    * avoid dome duplicate work
    
    * added docs
    
    * update test
    elalish authored Apr 25, 2024
    Copy the full SHA
    c738f1e View commit details
  3. Smoothing fixes (#796)

    * fixed nan normals
    
    * re-identify flat faces after refine
    
    * fix color interpolation
    
    * fix build
    elalish authored Apr 25, 2024
    Copy the full SHA
    cdcbd32 View commit details

Commits on Apr 26, 2024

  1. Copy the full SHA
    4c57a56 View commit details
  2. Ensure properties maintained through Decompose operation (#794)

    * Fix for #786 by setting numProps in GatherFaces method. Added test for Decompose with properties, and ExpectProperties function in test_main in order to check properties in a mesh match those set by SetProperties.
    
    * Correct formatting of ExpectProperties
    
    * Correct more formatting
    
    * Removed ExpectProperties and instead use existing test methods
    
    * Call RelatedGL for each Decomposed Manifold
    harmanpa authored Apr 26, 2024
    Copy the full SHA
    c9810fd View commit details

Commits on May 1, 2024

  1. Quaternion smoothing (#801)

    * revert smoothness change
    
    * updated to quaternions - not right yet
    
    * fixed triangles, mostly
    
    * fixed numerical stability problem
    
    * fixed more nans
    
    * fixed several bugs
    
    * refactor bezier2D
    
    * improved circularity
    
    * added test
    
    * updated tests
    
    * fixed mirror test
    
    * updated manual smooth model
    
    * updated JS test
    
    * cleanup
    elalish authored May 1, 2024
    Copy the full SHA
    a122bde View commit details

Commits on May 3, 2024

  1. C bindings: pass context to set_properties and warp operation callbac…

    …ks (#795)
    
    * Fix for #786 by setting numProps in GatherFaces method. Added test for Decompose with properties, and ExpectProperties function in test_main in order to check properties in a mesh match those set by SetProperties.
    
    * Correct formatting of ExpectProperties
    
    * Correct more formatting
    
    * Add x_context variants of set_properties and warp functions in cbindings, along with tests
    
    * Revert "Correct more formatting"
    
    This reverts commit 6e409cf.
    
    * Revert "Correct formatting of ExpectProperties"
    
    This reverts commit 4d5ee88.
    
    * Revert "Fix for #786 by setting numProps in GatherFaces method. Added test for Decompose with properties, and ExpectProperties function in test_main in order to check properties in a mesh match those set by SetProperties."
    
    This reverts commit 03848fa.
    
    * Remove _context variants of functions and make context argument the default for all callbacks. Add bounds checks to warp test and volume and surface area checks to level set test
    
    * Correct formatting
    
    * Use M_PI not M_PIf as Windows/Mac don't have it
    
    * Use glm not C math
    
    * Mac build sensitive to glm::pow<float,float> vs glm::pow<float>
    
    * Use std::pow for pow
    harmanpa authored May 3, 2024
    Copy the full SHA
    5301542 View commit details

Commits on May 10, 2024

  1. Runs example (#805)

    * switched three example to TS
    
    * use merge
    
    * cleanup
    
    * material groups
    
    * added groups and ids
    
    * working
    
    * added docs
    elalish authored May 10, 2024
    Copy the full SHA
    443863d View commit details
Showing with 168,072 additions and 17,570 deletions.
  1. +2 −0 .gersemirc
  2. +6 −0 .github/dependabot.yml
  3. +21 −15 .github/workflows/build_wheels.yml
  4. +12 −3 .github/workflows/check_format.yml
  5. +20 −8 .github/workflows/deploy.yml
  6. +164 −105 .github/workflows/manifold.yml
  7. +8 −6 .github/workflows/publish_npm.yml
  8. +31 −0 .github/workflows/release_file.yml
  9. +14 −2 .gitignore
  10. +0 −9 .gitmodules
  11. +5 −3 .vscode/launch.json
  12. +16 −4 .vscode/settings.json
  13. +248 −51 CMakeLists.txt
  14. +789 −437 Doxyfile
  15. +108 −55 README.md
  16. +3 −1 RELEASE_CHECKLIST.md
  17. +8 −4 bindings/CMakeLists.txt
  18. +40 −23 bindings/c/CMakeLists.txt
  19. +32 −27 bindings/c/box.cpp
  20. +35 −32 bindings/c/conv.cpp
  21. +19 −19 bindings/c/{include → }/conv.h
  22. +37 −30 bindings/c/cross.cpp
  23. +190 −110 bindings/c/include/{ → manifold}/manifoldc.h
  24. +16 −12 bindings/c/include/{ → manifold}/types.h
  25. +325 −126 bindings/c/manifoldc.cpp
  26. +7 −13 bindings/c/{meshio.cpp → meshIOc.cpp}
  27. +29 −23 bindings/c/rect.cpp
  28. +46 −21 bindings/python/CMakeLists.txt
  29. +1 −1 bindings/python/README.md
  30. +51 −0 bindings/python/docstring_override.txt
  31. +33 −2 bindings/python/examples/all_apis.py
  32. +1 −1 bindings/python/examples/bricks.py
  33. +2 −2 bindings/python/examples/extrude.py
  34. +6 −8 bindings/python/examples/gyroid_module.py
  35. +3 −1 bindings/python/examples/sponge.py
  36. +4 −5 bindings/python/examples/test_torus_knot.py
  37. +30 −18 bindings/python/gen_docs.py
  38. +436 −231 bindings/python/manifold3d.cpp
  39. +13 −0 bindings/python/stub_pattern.txt
  40. +0 −1 bindings/python/third_party/CMakeLists.txt
  41. +0 −1 bindings/python/third_party/nanobind
  42. +2 −0 bindings/wasm/.gitignore
  43. +39 −29 bindings/wasm/CMakeLists.txt
  44. +21 −9 bindings/wasm/README.md
  45. +71 −43 bindings/wasm/bindings.cpp
  46. +68 −35 bindings/wasm/bindings.js
  47. +33 −0 bindings/wasm/documents/Get Started.md
  48. +28 −0 bindings/wasm/examples/bindings.test.ts
  49. +46 −3 bindings/wasm/examples/editor.css
  50. +42 −21 bindings/wasm/examples/editor.js
  51. +10 −10 bindings/wasm/examples/gltf-io.ts
  52. +10 −3 bindings/wasm/examples/index.html
  53. +3 −126 bindings/wasm/examples/make-manifold.html
  54. +149 −0 bindings/wasm/examples/make-manifold.ts
  55. +1 −1 bindings/wasm/examples/manifold-gltf.ts
  56. +124 −0 bindings/wasm/examples/model-viewer-script.ts
  57. +12 −101 bindings/wasm/examples/model-viewer.html
  58. +2,191 −512 bindings/wasm/examples/package-lock.json
  59. +5 −4 bindings/wasm/examples/package.json
  60. +44 −2 bindings/wasm/examples/public/examples.js
  61. BIN bindings/wasm/examples/public/icons/mengerSponge64.png
  62. BIN bindings/wasm/examples/public/icons/redo.png
  63. BIN bindings/wasm/examples/public/icons/share.png
  64. BIN bindings/wasm/examples/public/icons/star.png
  65. BIN bindings/wasm/examples/public/icons/undo.png
  66. +1 −0 bindings/wasm/examples/simple-dropzone.d.ts
  67. +11 −73 bindings/wasm/examples/three.html
  68. +148 −0 bindings/wasm/examples/three.ts
  69. +1 −1 bindings/wasm/examples/tsconfig.json
  70. +48 −0 bindings/wasm/examples/vite-fixup-plugin.js
  71. +9 −2 bindings/wasm/examples/vite.config.js
  72. +48 −0 bindings/wasm/examples/worker-wrapper.ts
  73. +0 −150 bindings/wasm/examples/worker.test.js
  74. +125 −0 bindings/wasm/examples/worker.test.ts
  75. +81 −64 bindings/wasm/examples/worker.ts
  76. +26 −26 bindings/wasm/helpers.cpp
  77. +337 −32 bindings/wasm/manifold-encapsulated-types.d.ts
  78. +0 −4 bindings/wasm/manifold-global-types.d.ts
  79. +1 −0 bindings/wasm/manifold.d.ts
  80. +333 −2 bindings/wasm/package-lock.json
  81. +8 −2 bindings/wasm/package.json
  82. +9 −0 bindings/wasm/typedoc.json
  83. +40 −0 cmake/configHelper.cmake
  84. +90 −0 cmake/info.cmake
  85. +12 −0 cmake/manifold.pc.in
  86. +29 −0 cmake/manifoldConfig.cmake.in
  87. +234 −0 cmake/manifoldDeps.cmake
  88. +29 −0 cmake/version.h.in
  89. +19 −17 extras/CMakeLists.txt
  90. +5 −6 extras/convert_file.cpp
  91. +3 −3 extras/large_scene_test.cpp
  92. +65 −63 extras/minimize_testcase.cpp
  93. +0 −22 extras/perf
  94. +2 −2 extras/perf_test.cpp
  95. +0 −78 extras/perf_test_cgal.cpp
  96. +604 −0 extras/stl_test.cpp
  97. +60 −7 flake.lock
  98. +195 −157 flake.nix
  99. +0 −16 format.sh
  100. +206 −249 src/utilities/include/public.h → include/manifold/common.h
  101. +59 −61 {src/cross_section/include → include/manifold}/cross_section.h
  102. +2,601 −0 include/manifold/linalg.h
  103. +443 −0 include/manifold/manifold.h
  104. +24 −21 {meshIO/include → include/manifold}/meshIO.h
  105. +66 −0 include/manifold/optional_assert.h
  106. +62 −0 include/manifold/polygon.h
  107. +151 −0 include/manifold/vec_view.h
  108. +0 −42 meshIO/CMakeLists.txt
  109. +8 −15 pyproject.toml
  110. +19 −11 samples/CMakeLists.txt
  111. +10 −9 samples/include/samples.h
  112. BIN samples/models/mengerSponge192.png
  113. BIN samples/models/mengerSponge512.png
  114. BIN samples/models/mengerSponge64.png
  115. +24 −24 samples/src/bracelet.cpp
  116. +48 −41 samples/src/condensed_matter.cpp
  117. +16 −14 samples/src/gyroid_module.cpp
  118. +21 −22 samples/src/knot.cpp
  119. +7 −8 samples/src/menger_sponge.cpp
  120. +1 −1 samples/src/rounded_frame.cpp
  121. +24 −18 samples/src/scallop.cpp
  122. +4 −4 samples/src/tet_puzzle.cpp
  123. +31 −0 scripts/format.sh
  124. +25 −0 scripts/gersemi-check.sh
  125. 0 { → scripts}/minimizer.sh
  126. +26 −0 scripts/test-cmake-subdir.sh
  127. +28 −0 scripts/test-cmake.sh
  128. +24 −0 scripts/test-pkgconfig.sh
  129. +91 −8 src/CMakeLists.txt
  130. +174 −203 src/{manifold/src → }/boolean3.cpp
  131. +3 −3 src/{manifold/src → }/boolean3.h
  132. +251 −183 src/{manifold/src → }/boolean_result.cpp
  133. +382 −0 src/collider.h
  134. +0 −32 src/collider/CMakeLists.txt
  135. +0 −46 src/collider/include/collider.h
  136. +0 −395 src/collider/src/collider.cpp
  137. +152 −169 src/{manifold/src → }/constructors.cpp
  138. +0 −40 src/cross_section/CMakeLists.txt
  139. +88 −97 src/cross_section/{src → }/cross_section.cpp
  140. +735 −0 src/csg_tree.cpp
  141. +18 −39 src/{manifold/src → }/csg_tree.h
  142. +161 −151 src/{manifold/src → }/edge_op.cpp
  143. +76 −76 src/{manifold/src → }/face_op.cpp
  144. +37 −24 src/{utilities/include → }/hashtable.h
  145. +767 −0 src/impl.cpp
  146. +360 −0 src/impl.h
  147. +314 −0 src/iters.h
  148. +450 −273 src/{manifold/src → }/manifold.cpp
  149. +0 −42 src/manifold/CMakeLists.txt
  150. +0 −274 src/manifold/include/manifold.h
  151. +0 −650 src/manifold/src/csg_tree.cpp
  152. +0 −897 src/manifold/src/impl.cpp
  153. +0 −144 src/manifold/src/impl.h
  154. +0 −57 src/manifold/src/mesh_fixes.h
  155. +0 −418 src/manifold/src/properties.cpp
  156. +0 −493 src/manifold/src/smoothing.cpp
  157. +0 −615 src/manifold/src/sort.cpp
  158. +52 −121 {meshIO/src → src/meshIO}/meshIO.cpp
  159. +65 −0 src/mesh_fixes.h
  160. +1,125 −0 src/parallel.h
  161. +385 −250 src/{polygon/src → }/polygon.cpp
  162. +0 −28 src/polygon/CMakeLists.txt
  163. +0 −51 src/polygon/include/polygon.h
  164. +448 −0 src/properties.cpp
  165. +860 −0 src/quickhull.cpp
  166. +288 −0 src/quickhull.h
  167. +534 −0 src/sdf.cpp
  168. +0 −38 src/sdf/CMakeLists.txt
  169. +0 −24 src/sdf/include/sdf.h
  170. +0 −361 src/sdf/src/sdf.cpp
  171. +68 −87 src/{manifold/src → }/shared.h
  172. +1,003 −0 src/smoothing.cpp
  173. +517 −0 src/sort.cpp
  174. +81 −61 src/{utilities/include → }/sparse.h
  175. +809 −0 src/subdivision.cpp
  176. +112 −114 src/{utilities/include → }/svd.h
  177. +0 −9 src/third_party/CMakeLists.txt
  178. +0 −1 src/third_party/clipper2
  179. +0 −1 src/third_party/quickhull
  180. +225 −0 src/tri_dist.h
  181. +0 −116 src/utilities/CMakeLists.txt
  182. +0 −38 src/utilities/include/optional_assert.h
  183. +0 −195 src/utilities/include/par.h
  184. +0 −112 src/utilities/include/vec_view.h
  185. +77 −138 src/{utilities/include → }/utils.h
  186. +43 −62 src/{utilities/include → }/vec.h
  187. +47 −51 test/CMakeLists.txt
  188. +1,059 −0 test/boolean_complex_test.cpp
  189. +176 −1,111 test/boolean_test.cpp
  190. +54 −44 test/cross_section_test.cpp
  191. +217 −0 test/hull_test.cpp
  192. +99 −0 test/manifold_fuzz.cpp
  193. +628 −429 test/manifold_test.cpp
  194. +341 −77 test/manifoldc_test.cpp
  195. BIN test/models/Cray_left.glb
  196. BIN test/models/Cray_right.glb
  197. BIN test/models/Generic_Twin_7081.1.t0_left.glb
  198. BIN test/models/Generic_Twin_7081.1.t0_right.glb
  199. BIN test/models/Generic_Twin_91.1.t0.glb
  200. +6,709 −0 test/models/Offset1.obj
  201. +1,768 −0 test/models/Offset2.obj
  202. +91 −0 test/models/Offset3.obj
  203. +120 −0 test/models/Offset4.obj
  204. BIN test/models/hull-body.glb
  205. BIN test/models/hull-mask.glb
  206. +0 −4,749 test/polygon_corpus.cpp
  207. +36 −16 test/polygon_fuzz.cpp
  208. +77 −15 test/polygon_test.cpp
  209. +1,673 −0 test/polygons/polygon_corpus.txt
  210. +2,382 −0 test/polygons/sponge.txt
  211. +63,022 −0 test/polygons/zebra.txt
  212. +65,467 −0 test/polygons/zebra3.txt
  213. +261 −0 test/properties_test.cpp
  214. +92 −128 test/samples_test.cpp
  215. +156 −58 test/sdf_test.cpp
  216. +450 −0 test/smooth_test.cpp
  217. +16 −18 test/test.h
  218. +169 −162 test/test_main.cpp
2 changes: 2 additions & 0 deletions .gersemirc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
line_length: 80
indent: 2
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
36 changes: 21 additions & 15 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: build_wheels

on:
on:
release:
types: [published]
workflow_dispatch:
@@ -11,34 +11,39 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest]
# macos-13: x86-64
# macos-14: arm64
os: [ubuntu-22.04, windows-2019, macos-14, macos-13]
steps:
- run: |
git config --global submodule.fetchJobs 8
git config --global core.longpaths true
- uses: actions/checkout@v3
with:
submodules: recursive
- if: matrix.os == 'macos-14'
run: echo "CIBW_ARCHS=arm64 universal2" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
- name: Build wheels
uses: pypa/cibuildwheel@v2.15.0
- uses: actions/upload-artifact@v3
uses: pypa/cibuildwheel@v2.21.3
- uses: actions/upload-artifact@v4
with:
name: python-${{ matrix.os }}
path: ./wheelhouse/*.whl

make_sdist:
name: Make SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Optional, use if you use setuptools_scm
submodules: true # Optional, use if you have submodules

- name: Build SDist
run: pipx run build --sdist

- uses: actions/upload-artifact@v3
- name: Confirm SDist can be built
run: |
# FIXME: why doesn't scikit_build_core automatically download ninja?
sudo apt-get update
sudo apt-get install ninja-build
pip wheel dist/*.tar.gz
- uses: actions/upload-artifact@v4
with:
name: python-sdist
path: dist/*.tar.gz

pypi-publish:
@@ -51,9 +56,10 @@ jobs:
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: artifact
pattern: python-*
merge-multiple: true
path: dist
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
15 changes: 12 additions & 3 deletions .github/workflows/check_format.yml
Original file line number Diff line number Diff line change
@@ -11,14 +11,23 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v3
- uses: DoozyX/clang-format-lint-action@v0.14
- uses: actions/checkout@v4
- uses: DoozyX/clang-format-lint-action@v0.18
with:
source: '.'
exclude: '*/third_party'
extensions: 'h,cpp,js,ts,html'
clangFormatVersion: 11
clangFormatVersion: 18
- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
- uses: psf/black@stable
with:
options: "--check --verbose"
src: "./bindings/python/examples"
- name: "gersemi cmake check"
run: |
pip3 install gersemi
./scripts/gersemi-check.sh
28 changes: 20 additions & 8 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
name: Deploy documentation

on:
push:
branches:
- master
workflow_run:
workflows: [CI]
types:
- completed
branches: [master]

jobs:
deploy_github_pages:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Doxygen Action
uses: mattnotmitt/doxygen-action@v1
uses: mattnotmitt/doxygen-action@edge

- name: Move deployables
run: |
@@ -22,19 +24,29 @@ jobs:
mv ./docs ./public
- name: Download built examples
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
workflow: manifold.yml
workflow_conclusion: completed
pr: ${{github.event.pull_request.number}}
# specific to the triggering workflow
run_id: ${{github.event.workflow_run.id}}
# do not download from old run
check_artifacts: true
name: wasm
path: ./public

- name: Deploy Javascript Docs to Github Pages
run: |
cd bindings/wasm
npm install
npm run docs
mv ./docs ../../public/jsdocs
- name: Deploy to Github Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
force_orphan: true
cname: manifoldcad.org
publish_dir: ./public
publish_dir: ./public
Loading