6.5 KiB
Executable File
6.5 KiB
Executable File
Changelog
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.
Unreleased
Fixed
- Fixed Surface Area Heuristic (SAH) split strategy to function correctly, improve build performance, and produce more optimal bounds and improved a memory footprint.
Added
- Return "surfaceAreaCost" in returned
getBVHExtremesobject to compare BVH structure quality. - Support for
displayEdges,meshMaterial, andedgeMaterialto MeshBVHVisualizer to enable displaying bounds as solid meshes.
Changed
- Deprecated the
getBVHExtremes"total" return value in favor ofnodeCount.
[0.4.2] - 2021-08-04
Fixed
- Case where
intersectsRangeFunccould be passed the incorrect node id in shapecast. - Bug in
distanceToGeometryandclosestPointToGeometrywhich would likely result in some closest points being missed. This fix greatly degrades performance in the case where the passed geometry does not have a BVH. It is recommended that the passed in geometry include a computed bounds tree. - Cases where passed in geometry that did not include an index buffer could throw an error when calling functions like
closestPointToGeometry. - Case where raycastFirst would return the incorrect result.
- Greatly improved
MeshBVHVisualizerrender and update performance. - Case where MeshBVHVisualizer would not correctly display a BVH for geometry with multiple groups.
Added
distanceToGeometryandclosestPointToGeometryfast path when the passed in geometry has a bounds tree.- Support for position BufferAttribute to be interleaved.
[0.4.1] - 2021-06-21
Changed
- package.json "main" field to use a .cjs file extension
[0.4.0] - 2021-06-11
Added
MeshBVH.refitfunction to refit the bounds to modified vertices.setBoundingBoxMeshBVH construction option.MeshBVH.getBoundingBoxfunction.intersectsRangecallback option toMeshBVH.shapecast.
Changed
- Removed
src/worker/generateAsync.jsfunction. UseGenerateMeshBVHWorkerinstead. - Use
type: modulein package.json to enable use of es6 modules in node. - Add
sideEffects: falseto package.json. - Remove ability to generate an unpacked BVH.
- Improved "closestPointToPoint" performance slightly.
MeshBVH.shapecastto take an object of callback functions instead of a list of function arguments and the triangle intersection callback has been changed to take a single triangle index. See README for new API. Calls using the old function will log a warning.
Fixed
MeshBVHVisualizernot using the new geometry BVH if one was generated.MeshBVHVisualizernot using the new mesh if it was set.- Case where passing in null
intersectsTriangleFunctoMeshBVH.shapecastcould throw an error. - Case where the buffer being raycast against was not cleared correctly if a BVH had multiple roots.
[0.3.7] - 2021-03-06
Fixed
- Include built umd file including v0.3.6 changes.
[0.3.6] - 2021-03-03
Fixed
- Incorrect face index would be returned from intersection (related to three.js bug fixed in v0.126.1).
[0.3.5] - 2021-02-28
Fixed
- Case where
raycastFirstfailed to return a valid result.
[0.3.4] - 2021-02-25
Changed
- Raycast result to return a custom intersection object aligned with three.js v0.126.0.
[0.3.3] - 2021-01-24
Added
depthargument tointersectsBoundsFuncandintersectsTriangleFuncofshapecast.- "webvr" and "webxr" tags.
closestPointToSegmentfunction to the triangle object used during shapecast which can be used for capsule intersection detection.
[0.3.2] - 2020-12-23
Fixed
- Case where float 32 rounding error could result in leaf bounds not completely containing the triangles by expanding the bounds by an estimation of the error.
Changed
ShapecastintersectsBoundsFuncto return one of theNOT_INTERSECTED,INTERSECTED, orCONTAINEDconstants. Returningtrueandfalsecurrently retains the old functionality.
[0.3.1] - 2020-12-14
Added
- Performance improvements when computing distance to geometry.
shapecastto the docs.MeshBVHVisualizerto exports.
Fixed
- Cloning the bvh visualizer causing an error.
- Bug with shapecast function where one node would not be checked when using the node score function.
Changed
- Change the bvh visualizer so it automatically copies the local position and rotation of the target mesh.
[0.3.0] - 2020-12-01
Added
generateAsyncfunction in the/src/workerfolder to help generate BVHs asynchronously with WebWorkers.
Changed
- three.js version to use v0.123.0, change
Matrix4.getInversetoMatrix4.invert.
[0.2.0] - 2020-02-07
Added
- MeshBVH.serialize and deserialize functions so the bvh can be computed and transferred from a webworker.
lazyGeneration(defaults to true) option for faster tree initialization.- Support for a buffer-packed tree if
lazyGenerationis false or a tree has been deserialized for a more smaller memory footprint.
Changed
- CENTER tree computation to improve raycast performance and create more balanced trees.
[0.1.5] - 2020-01-03
Fixed
- Uglify warning for inline defined functions.
[0.1.4] - 2019-08-31
Changed
- Changed three.js peer dependency version from ^ to >= to prevent warnings.
[0.1.3] - 2019-05-24
Added
- Use the BufferGeometry bounding box if it exists and set it if it does not.
Changed
- Use the center of the triangles bounding box instead of the average of the vertices as the triangles center when binning the polygons.
[0.1.2] - 2019-03-17
Fixed
- Bug where
closestPointToGeometrywould throw an error when target vectors were provided because a function name was misspelled.
[0.1.1] - 2019-03-16
Added
- API for performing intersecting boxes, spheres, and geometry.
- API for checking the distance to geometry and points.
Fixed
- Fixed issue where an index buffer of the incorrect type was created if there were more than 2^16 vertices.
- Fixed MeshBVHVisualizer not visualizing all the groups in the bvh.
[0.1.0] - 2019-02-28
Added
- Error conditions when using
InterleavedAttributeBuffersfor both index and position geometry attributes. - The geometry index attribute is modified when building the
MeshBVH. And index attribute is created on geometry if it does not exist.
Fixed
- Fix the bounds tree not respecting groups
[0.0.2] - 2019-01-05
Added
- Add included files array to package.json.