Commit Graph
7 Commits
Author SHA1 Message Date
Emmett Lalish a9bf836574 Added file conversion and debug utility (#407)
* added file conversion utility

* added verbose output

* fix build
2023-04-11 11:38:35 -07:00
Olivier Chafik e17eb038bf Simplify the CsgOpNodes as we build them, rather than in GetChildren (#368)
* Flatten the CsgOpNodes as we build them, rather than in GetChildren

* Don't inline reused nodes in CsgNode::Boolean

* Reinstate difference -> union rewrite

* No need for opportunistic flattening anymore

* Fix typo

* Remove CsgOpNode::Impl::simplified_

* Don't overskip referenced nodes in simplification

* Avoid needless copy of shared pointers

* Disambiguate CsgOpNode::Impl::flatten_ -> forcedToLeafNodes_ and align GetChildren arg naming

* Simplified CsgOpNode::GetChildren

* Simpler (a-(b+c)) -> (a-b-c) transform in CsgOpNode::Boolean to work better w/ CsgOpNode::ToLeafNode

* Simpler build hints for large_scene_test.cpp

* [flatten] Refine rules about tree flattening + added test case

* [manifold] Propagate transforms when flattening op trees

* [flatten] move tests from manifold_test to boolean_test
2023-03-16 10:09:12 -07:00
Geoff deRosenroll a7b457db74 C bindings to facilitate static FFI bindings (#292)
* + c bindings to facilitate static FFI bindings

Squashed commit of the following:

commit a05f9b0e0ab079b95c29b4641ae928f02be219f4
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Dec 10 16:21:47 2022 -0800

    Add flag (default on) for python bindings

    Signed-off-by: Geoff deRosenroll <geoffderosenroll@gmail.com>

commit ce5b601fc7578fa43edbf7363a7b625d1d27a1de
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Dec 9 23:45:29 2022 -0800

    conv function naming consistency

commit 1b50cf077dada8c3bc13d77bfa1c8f0a406c047d
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Tue Dec 6 17:42:18 2022 -0800

    manifold_level_set_seq to C API (force sequential)

commit 77e06daf92e7014ce153a336ed685b9370e965c0
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Tue Dec 6 17:24:10 2022 -0800

    Use an optional executionpolicy param in LevelSet

    This allows bindings to avoid breaking their runtime locks while passing
    in function pointers without introducing another compile flag.

commit 12c62b1e33cdacd07f056859fa2038dfd1f62170
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Dec 5 15:09:41 2022 -0800

    Better section comments

commit 24f1d5107e24f41d3860fe6dea4832a523989eb9
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Dec 2 12:01:50 2022 -0800

    Add missing management functions for Components

commit a7d5aae8550c4ace458e78314eab04a3cf5f2053
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Thu Dec 1 23:45:45 2022 -0800

    Break Decompose up to avoid repetition in C binds

commit a650a1531dc52610db8e6009e82e247d7f256d3e
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sun Nov 27 22:41:38 2022 -0800

    Add manifold_get_properties

commit 97a58396cd8e6c5fad698f1280d02d78e0b51ded
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 26 22:53:42 2022 -0800

    circular segment functions corrected to static

commit c9c1ca7ec599b5f14401c85efde19481d86226f8
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Thu Nov 24 21:19:11 2022 -0800

    polygons from dbl ptr of SimplePolygon

commit 8e5390aa729817d0cc652f92a64e6850e4e16e9b
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Wed Nov 23 12:16:44 2022 -0800

    compose and decompose switched to double ptrs

commit 45c78c3e1aa0eaab8622c77b69221226af06861c
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Tue Nov 22 11:40:32 2022 -0800

    Add manifold copy and empty constructors

commit cfc06fe55cd4a508005385bcdb4037ed89695f80
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 21 15:03:00 2022 -0800

    Add MANIFOLD_SEQ_SDF to avoid runtime lock

commit e0f9d09e5ced6fcb2b83722542e99b20d0799e25
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sun Nov 20 16:56:50 2022 -0800

    Add missing export related contructors.

commit 0cbaa4a6090c402f2a2483c35f5b3b7e82d8cf52
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sun Nov 20 16:03:43 2022 -0800

    Add separate destruct functions

commit fd6c1c250e6b91114b0203b40a941fa73e3473ec
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 17:29:12 2022 -0800

    More consistent array handling

commit ec1eef84153b13bba0b5ae78a42084b634a9d9b1
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 16:52:07 2022 -0800

    Replace array args with pointers

commit 9079cbf7bb788e1b8eb992cbe1e3e51dfc36f1ce
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 15:00:47 2022 -0800

    Revert "Switch back to funptr struct args for simplicity"

    This reverts commit dc78841af654bf81c41e74795bac0f724af59dd0.

commit 62c1078fe9b10c88df86da0a5275f47581dad275
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 14:52:37 2022 -0800

    Switch back to funptr struct args for simplicity

commit d30992db9a4224235246531a5ddf1a034e8e0c1a
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 14:06:12 2022 -0800

    Avoid needing to pass in vec struct for funptrs

commit 2ba7bec1653a655c68bba3d2961fd280bc8e8f32
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Sat Nov 19 00:32:09 2022 -0800

    Use template spec to avoid fun ptr to cuda

commit 1faf58b3887747af8659eb1be660e2fc40ff17f9
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 21:54:56 2022 -0800

    Make fPIC more conditional.

commit 6215f89447f63753ca0dd2f2fcee88c7aaf5e548
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 21:35:09 2022 -0800

    Avoid passing dynamic lambda to GPU

commit 30fa3dc323df8962e3802a58f346b813a8a759f5
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 18:02:04 2022 -0800

    note and temporary hack RE cuda compilation

commit bb4dfe93cb8e0e7b582450f6d0c0d8d5ba5cef9a
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 17:21:25 2022 -0800

    Set graphlite library to OBJECT

commit e803da50b983c931c69e42fe3fea30aff534034b
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 16:04:28 2022 -0800

    Convert sublibraries to OBJECT to avoid archives

commit d0e9d176e79f18c645e538a5df19263d11630fcd
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Fri Nov 18 15:28:15 2022 -0800

    Add missing polygon size and deletion funcs

commit 7db72848b9012d9f1a69b28ad878fb65f4524fc3
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Tue Nov 15 22:26:17 2022 -0800

    Remove static flag (control with shared flag)

commit 5ae33f34716998e3d8b3368c619b81f145e34cfe
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Tue Nov 15 22:16:27 2022 -0800

    Add options to avoid python bindings

commit 4181a586288db47acbd55f8e94e94ec4a7fcd252
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 14 22:02:10 2022 -0800

    Rename to manifoldc

commit c4b14d64655ca2fb3ce8ac80af7390b959fed3c7
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 14 21:51:45 2022 -0800

    Cleanup unused typedefs and simplify names

commit a282c90f1f62141ee5c2cd9303ccc8649f2a6bb3
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 14 21:23:07 2022 -0800

    Placeholder (terrible) decompose binding

commit 9409e81abb2c3ba3ffb0983aa0c14e261d032cc2
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 14 20:37:02 2022 -0800

    Turn on export in CLI instead

commit 9dad24b787af0420ef32719c86fb42e11af9a8c1
Author: Geoff deRosenroll <geoffderosenroll@gmail.com>
Date:   Mon Nov 14 20:33:17 2022 -0800

    "Rebased" WIP cbindings

* Turn on -fPIC whenever shared libs are being built

* Add parens to disambiguate sdf policy logic

* Bump public std from 14 to 17

* Add binding flags to workflow builds

* Add export when building cbindings

* Bump ubuntu version (PBR material deprecation)

* Select no-param overload of Decompose

* Add missing const to decompose sig overload

* Re-organize

* variable capitalization consistency

* Drop to std14 to test for regression fix

* Attempted old libassimp compatibility hack

* Rebump to std_17

* Temporarily disabled

TODO: investigate why this is failing on Mac, but not other backends.

* Remove unused tuple include

* Remove uneccesary auto-includes

* Properly disable Boolean_Close

* rename discrete -> numComponents + early return

* Rename discrete -> numComponents

* Rename conv.hh -> conv.h

* Prune auto-includes

* Note on level_set vs level_set_seq

* Set export on for c-bindings

* Adding C binding tests.

* Separate and don't require CBIND build/test

* Remove bad flag

* Take const char ptr for filename

* Remove testc executable

* Add tests from removed testc
2022-12-18 21:59:36 +01:00
Emmett Lalish 11e58ea4d2 Adding SDF LevelSet (#187)
* polymorphic device functions working

* starting to flesh out algorithm

* getting closer

* fleshed out vert computation

* more progress

* BuildTris

* fixed some syntax

* updating to cpp

* added VecDc

* SDF compiles

* SDF runs

* fixed some bugs

* manifold output

* fixed out of memory bug

* flattened sides

* back to egg-crate

* works with CUDA too

* moved SDF

* Revert "moved SDF"

This reverts commit ba2348f38ed752d49eebdf14a73b5e1fd7a4827b.

* added gyroid sample

* added sdf_test

* added SDF tests

* tests pass

* updated gyroid_module

* fixed gyroid module

* added docs

* addressing feedback

* fix cuda detection

* clean up detect cuda

* fixed CUDA failure

* consistent execution policy in Boolean

* remove SDF wrapper class

* simplified tet logic

* use NeighborInside()

* optimized SDF

* moved RemoveUnreferencedVerts

* put printf statements behind MANIFOLD_DEBUG

* enable hashtable resize

* added test for hashtable resizing
2022-09-01 09:04:51 -07:00
Emmett Lalish a7584bc7d3 updated for new files 2022-07-20 15:01:03 -07:00
Emmett Lalish 4add644d76 merging master 2022-07-20 14:54:45 -07:00
Emmett Lalish 3b39bf2377 new directory structure 2022-07-18 22:01:03 -07:00