* figure out wasm shared memory access, manifold data structure storage
* checkpoint multi-mode mesh direct access
* clean this up for a PR
* use size_t instead of int. fix pointer math for free() call. tab indent 2 spaces in js to match other code
* apply clang formatting. default to mode 1 (faster)
* eliminate new getMeshDirect() api call and fold it into getMesh() as an optional parameter object
eliminate _FreeMeshDirect and use Module._free() instead
* added optional ability to get normals array
restore access to mode 0 largely for testing
* remove mode options, simplify code
* this is quite a bit neater. fixes shorter header length
* attempt to do this the right way
* meshGL working
* revert JS API update
* added docs
Co-authored-by: Stewart Allen <stewart.allen@gmail.com>
* Updated JS binding type definitions
* Ignore sublime text projects
* Ignore clangd cache
* Expose isManifold method
* Added wrapper for Manifold constructor, updated Mesh interface (...)
- Optional Mesh fields no longer error out with a 'missing property' error when they are missing
- Manifold constructor now uses the JS style Mesh instead of the serialized Mesh interface (MeshVec)
- The old constructor was kept as a new static function (ManifoldFromMeshVec)
- Error checking added to the constructor. If the status is not 0, an error with the correct message and code is thrown
- Updated type definitions
* Fix typo
whoops...
* Fix broken MeshRelation deserialization
* Revert "Expose isManifold method"
This reverts commit cedde70e1a28d721f58d886cea3ebd02fe0565af.
* Dummy commit to trigger CI
* modularize wasm and add mocha tests
* add npm tests to CI
* fix mv command
* revert to build directory
* added rest of example tests
* fixed three.js test
* update web examples for module
* moved computations to worker
* fixed console logs
* fixed run at startup
* buttons should not be children of buttons!
* enabled cancel
* allow top and bottom view
* fixed reinitialization
* split editor files
* added loading poster
* added dropdown menu
* switching examples works
* autosave working
* state retrieval working
* rearrange code
* added edit buttons
* made delete function
* rename works
* expose batch boolean API
It is common to perform boolean operations on a set of meshes. This
batch boolean API allows faster operation in that case by avoiding
building up a complicated csg tree.
* expose batch boolean interface for wasm
This brings a 10x improvement to browser in some cases.
See #215 for discussion.
* record performance statistics for editor
So we can compare against other libraries easily, and users are able to
verify it without having to compile the whole library. Ideally we should
put this information in a console GUI, but printing to browser console
works for now.
* use compose for disjoint union
Last mystery in #114. It turns out that the problem is due to
misunderstanding of the bounding box API: Box::Transform is *not* a safe
over-approximation of the bounding box of the manifold after the
transform. In fact it might be smaller than that if the transform is not
axis aligned. The simple fix is to apply the transform first and then
compute the bounding box, this will also make sure that the bounding box
is tight.
* fix batch union
Co-authored-by: Emmett Lalish <elalish@gmail.com>