All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- A couple cases relating missing triangles during clip
- Cases where degenerate triangles could make their way into the result and potentially cause incorrectly large bounding boxes.
- Case where extraneous points could be generated causing incorrectly large bounding boxes when brushes contain degenerate triangles.
Unpublished
- Case where coplanar faces may not be clipped together.
- Case where coplanar faces may not be removed correctly.
- Evaluator.conslidateGroups not working as expected when groups need to be reordered and merged.
- Cases where triangles are culled incorrectly.
- Small performance improvement to HalfEdge structure generation resulting in up to 4-5% time improvement on operations.
- Additional small performance improvement of 4-5% to speed up determination of whether a whole triangle is inside the companion mesh or not.
- Adjust the hash logic for finding sibling edges to be more robust.
- Support for
HOLLOW_INTERSECTION
andHOLLOW_SUBTRACTION
to allow for non-manifold clipping results on the first brush. - Improve performance by ~10-30% when objects are intersecting by preemtively detecting potential coplanar faces and skipping a slow raycast path for non-coplanar faces.
- Evaluator.consolidateGroups option to merge groups with common materials on CSG operation.
- New optional function signature for Evaluator.evalute to return perform multiple operations on the brushes at once.
REVERSE_SUBTRACTION
operation to perform the subtraction of brush A from brush B.
- A clip case resulting in a missing triangle.
- Bumped three-mesh-bvh version to v0.6.6
- Uses an indirect bvh buffer to enable faster intersection search operations.
- Incorrect type declarations.
- Peer dependencies to allow three versions >= r144
- Typo when changing SphereBufferGeometry.
- Updated to support three.js versions >= 154
- Improve types.
- Case where very thin triangles would not be clipped.
- Simplified clipping logic and removed case where clipping could cause a log from unexpected scenario.
- Typescript definitions for the public API.
- Support for geometries with negated scales.
computeMeshVolume
function.
- Return value for GridMaterial.getCustomCacheKey().
- Made coplanar face intersections more robust.
- Case where coplanar faces were not handled properly with the
DIFFERENCE
operation. - Handle
COPLANAR
cases more robustly. - Improved half edge precision.
- Incorrect package.json "main" reference.
Initial experimental version.