@math.gl/geometry 5.0.0-alpha.2 → 5.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +97 -49
- package/README.md +16 -1
- package/THIRD-PARTY-NOTICES.md +18 -0
- package/dist/culling/constants.d.ts +3 -0
- package/dist/culling/constants.d.ts.map +1 -0
- package/dist/culling/constants.js +5 -0
- package/dist/culling/constants.js.map +1 -0
- package/dist/culling/index.cjs +2014 -0
- package/dist/culling/index.cjs.map +6 -0
- package/dist/culling/index.d.ts +29 -0
- package/dist/culling/index.d.ts.map +1 -0
- package/dist/culling/index.js +23 -0
- package/dist/culling/index.js.map +1 -0
- package/dist/culling/lib/algorithms/bounding-box-from-points.d.ts +15 -0
- package/dist/culling/lib/algorithms/bounding-box-from-points.d.ts.map +1 -0
- package/dist/culling/lib/algorithms/bounding-box-from-points.js +137 -0
- package/dist/culling/lib/algorithms/bounding-box-from-points.js.map +1 -0
- package/dist/culling/lib/algorithms/bounding-sphere-from-points.d.ts +14 -0
- package/dist/culling/lib/algorithms/bounding-sphere-from-points.d.ts.map +1 -0
- package/dist/culling/lib/algorithms/bounding-sphere-from-points.js +146 -0
- package/dist/culling/lib/algorithms/bounding-sphere-from-points.js.map +1 -0
- package/dist/culling/lib/algorithms/compute-eigen-decomposition.d.ts +37 -0
- package/dist/culling/lib/algorithms/compute-eigen-decomposition.d.ts.map +1 -0
- package/dist/culling/lib/algorithms/compute-eigen-decomposition.js +137 -0
- package/dist/culling/lib/algorithms/compute-eigen-decomposition.js.map +1 -0
- package/dist/culling/lib/algorithms/oriented-bounding-box-quaternion.d.ts +7 -0
- package/dist/culling/lib/algorithms/oriented-bounding-box-quaternion.d.ts.map +1 -0
- package/dist/culling/lib/algorithms/oriented-bounding-box-quaternion.js +26 -0
- package/dist/culling/lib/algorithms/oriented-bounding-box-quaternion.js.map +1 -0
- package/dist/culling/lib/bounding-volumes/axis-aligned-bounding-box.d.ts +56 -0
- package/dist/culling/lib/bounding-volumes/axis-aligned-bounding-box.d.ts.map +1 -0
- package/dist/culling/lib/bounding-volumes/axis-aligned-bounding-box.js +116 -0
- package/dist/culling/lib/bounding-volumes/axis-aligned-bounding-box.js.map +1 -0
- package/dist/culling/lib/bounding-volumes/bounding-sphere.d.ts +40 -0
- package/dist/culling/lib/bounding-volumes/bounding-sphere.d.ts.map +1 -0
- package/dist/culling/lib/bounding-volumes/bounding-sphere.js +123 -0
- package/dist/culling/lib/bounding-volumes/bounding-sphere.js.map +1 -0
- package/dist/culling/lib/bounding-volumes/bounding-volume.d.ts +30 -0
- package/dist/culling/lib/bounding-volumes/bounding-volume.d.ts.map +1 -0
- package/dist/culling/lib/bounding-volumes/bounding-volume.js +7 -0
- package/dist/culling/lib/bounding-volumes/bounding-volume.js.map +1 -0
- package/dist/culling/lib/bounding-volumes/oriented-bounding-box.d.ts +62 -0
- package/dist/culling/lib/bounding-volumes/oriented-bounding-box.d.ts.map +1 -0
- package/dist/culling/lib/bounding-volumes/oriented-bounding-box.js +230 -0
- package/dist/culling/lib/bounding-volumes/oriented-bounding-box.js.map +1 -0
- package/dist/culling/lib/culling-volume.d.ts +46 -0
- package/dist/culling/lib/culling-volume.d.ts.map +1 -0
- package/dist/culling/lib/culling-volume.js +126 -0
- package/dist/culling/lib/culling-volume.js.map +1 -0
- package/dist/culling/lib/perspective-frustum.d.ts +153 -0
- package/dist/culling/lib/perspective-frustum.d.ts.map +1 -0
- package/dist/culling/lib/perspective-frustum.js +191 -0
- package/dist/culling/lib/perspective-frustum.js.map +1 -0
- package/dist/culling/lib/perspective-off-center-frustum.d.ts +158 -0
- package/dist/culling/lib/perspective-off-center-frustum.d.ts.map +1 -0
- package/dist/culling/lib/perspective-off-center-frustum.js +276 -0
- package/dist/culling/lib/perspective-off-center-frustum.js.map +1 -0
- package/dist/culling/lib/plane.d.ts +35 -0
- package/dist/culling/lib/plane.d.ts.map +1 -0
- package/dist/culling/lib/plane.js +90 -0
- package/dist/culling/lib/plane.js.map +1 -0
- package/dist/culling/lib/ray.d.ts +13 -0
- package/dist/culling/lib/ray.d.ts.map +1 -0
- package/dist/culling/lib/ray.js +30 -0
- package/dist/culling/lib/ray.js.map +1 -0
- package/dist/culling/lib/shapes/box-shape.d.ts +19 -0
- package/dist/culling/lib/shapes/box-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/box-shape.js +69 -0
- package/dist/culling/lib/shapes/box-shape.js.map +1 -0
- package/dist/culling/lib/shapes/capsule-shape.d.ts +23 -0
- package/dist/culling/lib/shapes/capsule-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/capsule-shape.js +151 -0
- package/dist/culling/lib/shapes/capsule-shape.js.map +1 -0
- package/dist/culling/lib/shapes/cylinder-shape.d.ts +22 -0
- package/dist/culling/lib/shapes/cylinder-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/cylinder-shape.js +99 -0
- package/dist/culling/lib/shapes/cylinder-shape.js.map +1 -0
- package/dist/culling/lib/shapes/implicit-shape.d.ts +56 -0
- package/dist/culling/lib/shapes/implicit-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/implicit-shape.js +142 -0
- package/dist/culling/lib/shapes/implicit-shape.js.map +1 -0
- package/dist/culling/lib/shapes/plane-shape.d.ts +27 -0
- package/dist/culling/lib/shapes/plane-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/plane-shape.js +71 -0
- package/dist/culling/lib/shapes/plane-shape.js.map +1 -0
- package/dist/culling/lib/shapes/sphere-shape.d.ts +18 -0
- package/dist/culling/lib/shapes/sphere-shape.d.ts.map +1 -0
- package/dist/culling/lib/shapes/sphere-shape.js +43 -0
- package/dist/culling/lib/shapes/sphere-shape.js.map +1 -0
- package/dist/culling/oriented-box-2d.cjs +73 -0
- package/dist/culling/oriented-box-2d.cjs.map +6 -0
- package/dist/culling/oriented-box-2d.d.ts +22 -0
- package/dist/culling/oriented-box-2d.d.ts.map +1 -0
- package/dist/culling/oriented-box-2d.js +86 -0
- package/dist/culling/oriented-box-2d.js.map +1 -0
- package/dist/culling/queries.cjs +161 -0
- package/dist/culling/queries.cjs.map +6 -0
- package/dist/culling/queries.d.ts +20 -0
- package/dist/culling/queries.d.ts.map +1 -0
- package/dist/culling/queries.js +139 -0
- package/dist/culling/queries.js.map +1 -0
- package/dist/curves/bezier-curves.d.ts +18 -0
- package/dist/curves/bezier-curves.d.ts.map +1 -0
- package/dist/curves/bezier-curves.js +54 -0
- package/dist/curves/bezier-curves.js.map +1 -0
- package/dist/curves/catmull-rom-curve.d.ts +15 -0
- package/dist/curves/catmull-rom-curve.d.ts.map +1 -0
- package/dist/curves/catmull-rom-curve.js +77 -0
- package/dist/curves/catmull-rom-curve.js.map +1 -0
- package/dist/curves/curve-arc-length.d.ts +17 -0
- package/dist/curves/curve-arc-length.d.ts.map +1 -0
- package/dist/curves/curve-arc-length.js +58 -0
- package/dist/curves/curve-arc-length.js.map +1 -0
- package/dist/curves/curve.d.ts +23 -0
- package/dist/curves/curve.d.ts.map +1 -0
- package/dist/curves/curve.js +77 -0
- package/dist/curves/curve.js.map +1 -0
- package/dist/curves/hermite-curve.d.ts +9 -0
- package/dist/curves/hermite-curve.d.ts.map +1 -0
- package/dist/curves/hermite-curve.js +24 -0
- package/dist/curves/hermite-curve.js.map +1 -0
- package/dist/curves/index.cjs +293 -0
- package/dist/curves/index.cjs.map +6 -0
- package/dist/curves/index.d.ts +8 -0
- package/dist/curves/index.d.ts.map +1 -0
- package/dist/curves/index.js +9 -0
- package/dist/curves/index.js.map +1 -0
- package/dist/geometries/box-geometry.js +1 -1
- package/dist/geometries/box-geometry.js.map +1 -1
- package/dist/geometries/capsule-geometry.js +1 -1
- package/dist/geometries/capsule-geometry.js.map +1 -1
- package/dist/geometries/cylinder-geometry.js +1 -1
- package/dist/geometries/cylinder-geometry.js.map +1 -1
- package/dist/geometries/geometry-helpers.js +1 -1
- package/dist/geometries/geometry-helpers.js.map +1 -1
- package/dist/geometries/ico-sphere-geometry.js +1 -1
- package/dist/geometries/ico-sphere-geometry.js.map +1 -1
- package/dist/geometries/plane-geometry.js +1 -1
- package/dist/geometries/plane-geometry.js.map +1 -1
- package/dist/geometries/primitive-mesh-builder.d.ts +24 -0
- package/dist/geometries/primitive-mesh-builder.d.ts.map +1 -0
- package/dist/geometries/primitive-mesh-builder.js +74 -0
- package/dist/geometries/primitive-mesh-builder.js.map +1 -0
- package/dist/geometries/prism-geometry.d.ts +13 -0
- package/dist/geometries/prism-geometry.d.ts.map +1 -0
- package/dist/geometries/prism-geometry.js +34 -0
- package/dist/geometries/prism-geometry.js.map +1 -0
- package/dist/geometries/ring-geometry.d.ts +15 -0
- package/dist/geometries/ring-geometry.d.ts.map +1 -0
- package/dist/geometries/ring-geometry.js +64 -0
- package/dist/geometries/ring-geometry.js.map +1 -0
- package/dist/geometries/sphere-geometry.js +1 -1
- package/dist/geometries/sphere-geometry.js.map +1 -1
- package/dist/geometries/surface-of-revolution.js +1 -1
- package/dist/geometries/surface-of-revolution.js.map +1 -1
- package/dist/geometries/truncated-cone-geometry.js +1 -1
- package/dist/geometries/truncated-cone-geometry.js.map +1 -1
- package/dist/index.cjs +290 -9
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/geometry-utils.js +1 -1
- package/dist/lib/geometry-utils.js.map +1 -1
- package/dist/lib/geometry.d.ts +1 -1
- package/dist/lib/geometry.d.ts.map +1 -1
- package/dist/lib/geometry.js +1 -1
- package/dist/lib/geometry.js.map +1 -1
- package/dist/lib/hinge-tree.d.ts +33 -0
- package/dist/lib/hinge-tree.d.ts.map +1 -0
- package/dist/lib/hinge-tree.js +144 -0
- package/dist/lib/hinge-tree.js.map +1 -0
- package/dist/parametric/lathe-geometry.d.ts +14 -0
- package/dist/parametric/lathe-geometry.d.ts.map +1 -0
- package/dist/parametric/lathe-geometry.js +48 -0
- package/dist/parametric/lathe-geometry.js.map +1 -0
- package/dist/parametric/parametric-geometry.d.ts +20 -0
- package/dist/parametric/parametric-geometry.d.ts.map +1 -0
- package/dist/parametric/parametric-geometry.js +88 -0
- package/dist/parametric/parametric-geometry.js.map +1 -0
- package/dist/parametric/torus-geometry.d.ts +19 -0
- package/dist/parametric/torus-geometry.d.ts.map +1 -0
- package/dist/parametric/torus-geometry.js +89 -0
- package/dist/parametric/torus-geometry.js.map +1 -0
- package/dist/parametric.cjs +328 -0
- package/dist/parametric.cjs.map +6 -0
- package/dist/parametric.d.ts +7 -0
- package/dist/parametric.d.ts.map +1 -0
- package/dist/parametric.js +7 -0
- package/dist/parametric.js.map +1 -0
- package/dist/polygon/cut-by-grid.d.ts +24 -0
- package/dist/polygon/cut-by-grid.d.ts.map +1 -0
- package/dist/polygon/cut-by-grid.js +221 -0
- package/dist/polygon/cut-by-grid.js.map +1 -0
- package/dist/polygon/cut-by-mercator-bounds.d.ts +17 -0
- package/dist/polygon/cut-by-mercator-bounds.d.ts.map +1 -0
- package/dist/polygon/cut-by-mercator-bounds.js +149 -0
- package/dist/polygon/cut-by-mercator-bounds.js.map +1 -0
- package/dist/polygon/earcut.d.ts +13 -0
- package/dist/polygon/earcut.d.ts.map +1 -0
- package/dist/polygon/earcut.js +627 -0
- package/dist/polygon/earcut.js.map +1 -0
- package/dist/polygon/index.cjs +1437 -0
- package/dist/polygon/index.cjs.map +6 -0
- package/dist/polygon/index.d.ts +12 -0
- package/dist/polygon/index.d.ts.map +1 -0
- package/dist/polygon/index.js +12 -0
- package/dist/polygon/index.js.map +1 -0
- package/dist/polygon/lineclip.d.ts +31 -0
- package/dist/polygon/lineclip.d.ts.map +1 -0
- package/dist/polygon/lineclip.js +184 -0
- package/dist/polygon/lineclip.js.map +1 -0
- package/dist/polygon/polygon-utils.d.ts +103 -0
- package/dist/polygon/polygon-utils.d.ts.map +1 -0
- package/dist/polygon/polygon-utils.js +155 -0
- package/dist/polygon/polygon-utils.js.map +1 -0
- package/dist/polygon/polygon.d.ts +41 -0
- package/dist/polygon/polygon.d.ts.map +1 -0
- package/dist/polygon/polygon.js +76 -0
- package/dist/polygon/polygon.js.map +1 -0
- package/dist/polygon/subdivide-polyline.d.ts +56 -0
- package/dist/polygon/subdivide-polyline.d.ts.map +1 -0
- package/dist/polygon/subdivide-polyline.js +141 -0
- package/dist/polygon/subdivide-polyline.js.map +1 -0
- package/dist/polygon/subdivide-triangle-mesh.d.ts +68 -0
- package/dist/polygon/subdivide-triangle-mesh.d.ts.map +1 -0
- package/dist/polygon/subdivide-triangle-mesh.js +228 -0
- package/dist/polygon/subdivide-triangle-mesh.js.map +1 -0
- package/dist/polygon/utils.d.ts +5 -0
- package/dist/polygon/utils.d.ts.map +1 -0
- package/dist/polygon/utils.js +38 -0
- package/dist/polygon/utils.js.map +1 -0
- package/dist/spatial-index/box-index.cjs +328 -0
- package/dist/spatial-index/box-index.cjs.map +6 -0
- package/dist/spatial-index/box-index.d.ts +65 -0
- package/dist/spatial-index/box-index.d.ts.map +1 -0
- package/dist/spatial-index/box-index.js +263 -0
- package/dist/spatial-index/box-index.js.map +1 -0
- package/dist/spatial-index/index.cjs +494 -0
- package/dist/spatial-index/index.cjs.map +6 -0
- package/dist/spatial-index/index.d.ts +5 -0
- package/dist/spatial-index/index.d.ts.map +1 -0
- package/dist/spatial-index/index.js +6 -0
- package/dist/spatial-index/index.js.map +1 -0
- package/dist/spatial-index/triangle-bvh.d.ts +53 -0
- package/dist/spatial-index/triangle-bvh.d.ts.map +1 -0
- package/dist/spatial-index/triangle-bvh.js +102 -0
- package/dist/spatial-index/triangle-bvh.js.map +1 -0
- package/dist/utils/attribute-compression.d.ts +50 -0
- package/dist/utils/attribute-compression.d.ts.map +1 -0
- package/dist/utils/attribute-compression.js +186 -0
- package/dist/utils/attribute-compression.js.map +1 -0
- package/dist/utils/attribute-iterator.d.ts +8 -0
- package/dist/utils/attribute-iterator.d.ts.map +1 -0
- package/dist/utils/attribute-iterator.js +25 -0
- package/dist/utils/attribute-iterator.js.map +1 -0
- package/dist/utils/compute-vertex-normals.d.ts +4 -0
- package/dist/utils/compute-vertex-normals.d.ts.map +1 -0
- package/dist/utils/compute-vertex-normals.js +54 -0
- package/dist/utils/compute-vertex-normals.js.map +1 -0
- package/dist/utils/constants.d.ts +52 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +39 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/coordinates.d.ts +3 -0
- package/dist/utils/coordinates.d.ts.map +1 -0
- package/dist/utils/coordinates.js +8 -0
- package/dist/utils/coordinates.js.map +1 -0
- package/dist/utils/geometry.d.ts +20 -0
- package/dist/utils/geometry.d.ts.map +1 -0
- package/dist/utils/geometry.js +31 -0
- package/dist/utils/geometry.js.map +1 -0
- package/dist/utils/gl-type.d.ts +17 -0
- package/dist/utils/gl-type.d.ts.map +1 -0
- package/dist/utils/gl-type.js +69 -0
- package/dist/utils/gl-type.js.map +1 -0
- package/dist/utils/index.cjs +965 -0
- package/dist/utils/index.cjs.map +6 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/interpolate-packed-attributes.cjs +176 -0
- package/dist/utils/interpolate-packed-attributes.cjs.map +6 -0
- package/dist/utils/interpolate-packed-attributes.d.ts +43 -0
- package/dist/utils/interpolate-packed-attributes.d.ts.map +1 -0
- package/dist/utils/interpolate-packed-attributes.js +192 -0
- package/dist/utils/interpolate-packed-attributes.js.map +1 -0
- package/dist/utils/mesh-processing.d.ts +18 -0
- package/dist/utils/mesh-processing.d.ts.map +1 -0
- package/dist/utils/mesh-processing.js +300 -0
- package/dist/utils/mesh-processing.js.map +1 -0
- package/dist/utils/primitive-iterator.d.ts +21 -0
- package/dist/utils/primitive-iterator.d.ts.map +1 -0
- package/dist/utils/primitive-iterator.js +117 -0
- package/dist/utils/primitive-iterator.js.map +1 -0
- package/dist/utils/rgb565.d.ts +5 -0
- package/dist/utils/rgb565.d.ts.map +1 -0
- package/dist/utils/rgb565.js +24 -0
- package/dist/utils/rgb565.js.map +1 -0
- package/dist/utils/typed-array-utils.d.ts +3 -0
- package/dist/utils/typed-array-utils.d.ts.map +1 -0
- package/dist/utils/typed-array-utils.js +16 -0
- package/dist/utils/typed-array-utils.js.map +1 -0
- package/package.json +57 -4
- package/src/culling/constants.ts +6 -0
- package/src/culling/index.ts +45 -0
- package/src/culling/lib/algorithms/bounding-box-from-points.ts +174 -0
- package/src/culling/lib/algorithms/bounding-sphere-from-points.ts +175 -0
- package/src/culling/lib/algorithms/compute-eigen-decomposition.ts +171 -0
- package/src/culling/lib/algorithms/oriented-bounding-box-quaternion.ts +32 -0
- package/src/culling/lib/bounding-volumes/axis-aligned-bounding-box.ts +153 -0
- package/src/culling/lib/bounding-volumes/bounding-sphere.ts +154 -0
- package/src/culling/lib/bounding-volumes/bounding-volume.ts +38 -0
- package/src/culling/lib/bounding-volumes/oriented-bounding-box.ts +320 -0
- package/src/culling/lib/culling-volume.ts +163 -0
- package/src/culling/lib/perspective-frustum.ts +288 -0
- package/src/culling/lib/perspective-off-center-frustum.ts +381 -0
- package/src/culling/lib/plane.ts +118 -0
- package/src/culling/lib/ray.ts +33 -0
- package/src/culling/lib/shapes/box-shape.ts +78 -0
- package/src/culling/lib/shapes/capsule-shape.ts +232 -0
- package/src/culling/lib/shapes/cylinder-shape.ts +133 -0
- package/src/culling/lib/shapes/implicit-shape.ts +209 -0
- package/src/culling/lib/shapes/plane-shape.ts +78 -0
- package/src/culling/lib/shapes/sphere-shape.ts +60 -0
- package/src/culling/oriented-box-2d.ts +165 -0
- package/src/culling/queries.ts +155 -0
- package/src/curves/bezier-curves.ts +62 -0
- package/src/curves/catmull-rom-curve.ts +89 -0
- package/src/curves/curve-arc-length.ts +70 -0
- package/src/curves/curve.ts +96 -0
- package/src/curves/hermite-curve.ts +34 -0
- package/src/curves/index.ts +15 -0
- package/src/geometries/box-geometry.ts +1 -1
- package/src/geometries/capsule-geometry.ts +1 -1
- package/src/geometries/cylinder-geometry.ts +1 -1
- package/src/geometries/geometry-helpers.ts +1 -1
- package/src/geometries/ico-sphere-geometry.ts +1 -1
- package/src/geometries/plane-geometry.ts +1 -1
- package/src/geometries/primitive-mesh-builder.ts +84 -0
- package/src/geometries/prism-geometry.ts +57 -0
- package/src/geometries/ring-geometry.ts +102 -0
- package/src/geometries/sphere-geometry.ts +1 -1
- package/src/geometries/surface-of-revolution.ts +1 -1
- package/src/geometries/truncated-cone-geometry.ts +1 -1
- package/src/index.ts +10 -1
- package/src/lib/geometry-utils.ts +2 -2
- package/src/lib/geometry.ts +2 -2
- package/src/lib/hinge-tree.ts +170 -0
- package/src/parametric/lathe-geometry.ts +70 -0
- package/src/parametric/parametric-geometry.ts +118 -0
- package/src/parametric/torus-geometry.ts +118 -0
- package/src/parametric.ts +9 -0
- package/src/polygon/cut-by-grid.ts +313 -0
- package/src/polygon/cut-by-mercator-bounds.ts +204 -0
- package/src/polygon/earcut.ts +798 -0
- package/src/polygon/index.ts +35 -0
- package/src/polygon/lineclip.ts +218 -0
- package/src/polygon/polygon-utils.ts +273 -0
- package/src/polygon/polygon.ts +105 -0
- package/src/polygon/subdivide-polyline.ts +223 -0
- package/src/polygon/subdivide-triangle-mesh.ts +322 -0
- package/src/polygon/utils.ts +50 -0
- package/src/spatial-index/box-index.ts +343 -0
- package/src/spatial-index/index.ts +18 -0
- package/src/spatial-index/triangle-bvh.ts +162 -0
- package/src/utils/attribute-compression.ts +234 -0
- package/src/utils/attribute-iterator.ts +28 -0
- package/src/utils/compute-vertex-normals.ts +63 -0
- package/src/utils/constants.ts +42 -0
- package/src/utils/coordinates.ts +8 -0
- package/src/utils/geometry.ts +49 -0
- package/src/utils/gl-type.ts +87 -0
- package/src/utils/index.ts +55 -0
- package/src/utils/interpolate-packed-attributes.ts +284 -0
- package/src/utils/mesh-processing.ts +377 -0
- package/src/utils/primitive-iterator.ts +145 -0
- package/src/utils/rgb565.ts +26 -0
- package/src/utils/typed-array-utils.ts +16 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/culling/index.ts", "../../src/culling/lib/bounding-volumes/axis-aligned-bounding-box.ts", "../../src/culling/lib/bounding-volumes/bounding-sphere.ts", "../../src/culling/lib/bounding-volumes/oriented-bounding-box.ts", "../../src/culling/lib/culling-volume.ts", "../../src/culling/lib/plane.ts", "../../src/culling/lib/ray.ts", "../../src/culling/lib/shapes/implicit-shape.ts", "../../src/culling/lib/shapes/box-shape.ts", "../../src/culling/lib/shapes/capsule-shape.ts", "../../src/culling/lib/shapes/cylinder-shape.ts", "../../src/culling/lib/shapes/plane-shape.ts", "../../src/culling/lib/shapes/sphere-shape.ts", "../../src/culling/lib/perspective-off-center-frustum.ts", "../../src/culling/lib/perspective-frustum.ts", "../../src/culling/lib/algorithms/bounding-sphere-from-points.ts", "../../src/culling/lib/algorithms/bounding-box-from-points.ts", "../../src/culling/lib/algorithms/compute-eigen-decomposition.ts", "../../src/culling/queries.ts", "../../src/culling/oriented-box-2d.ts", "../../src/culling/lib/algorithms/oriented-bounding-box-quaternion.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_core", "scratchVector", "scratchVector2", "import_core", "import_core", "import_core", "scratchNormal", "import_core", "import_core", "axis", "EPSILON", "EPSILON", "import_core", "EPSILON", "dot", "import_core", "scratchPlaneNormal", "import_core", "import_core", "import_core", "import_core", "scratchVector2", "scratchVector3", "dot", "import_core"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type { CullingResult } from "./constants.js";
|
|
2
|
+
export { AxisAlignedBoundingBox } from "./lib/bounding-volumes/axis-aligned-bounding-box.js";
|
|
3
|
+
export { BoundingSphere } from "./lib/bounding-volumes/bounding-sphere.js";
|
|
4
|
+
export { OrientedBoundingBox } from "./lib/bounding-volumes/oriented-bounding-box.js";
|
|
5
|
+
export { CullingVolume } from "./lib/culling-volume.js";
|
|
6
|
+
export { Plane } from "./lib/plane.js";
|
|
7
|
+
export { Ray } from "./lib/ray.js";
|
|
8
|
+
export type { ImplicitShape, RayIntersection } from "./lib/shapes/implicit-shape.js";
|
|
9
|
+
export { BoxShape } from "./lib/shapes/box-shape.js";
|
|
10
|
+
export type { BoxShapeProps } from "./lib/shapes/box-shape.js";
|
|
11
|
+
export { CapsuleShape } from "./lib/shapes/capsule-shape.js";
|
|
12
|
+
export type { CapsuleShapeProps } from "./lib/shapes/capsule-shape.js";
|
|
13
|
+
export { CylinderShape } from "./lib/shapes/cylinder-shape.js";
|
|
14
|
+
export type { CylinderShapeProps } from "./lib/shapes/cylinder-shape.js";
|
|
15
|
+
export { PlaneShape } from "./lib/shapes/plane-shape.js";
|
|
16
|
+
export type { PlaneShapeProps } from "./lib/shapes/plane-shape.js";
|
|
17
|
+
export { SphereShape } from "./lib/shapes/sphere-shape.js";
|
|
18
|
+
export type { SphereShapeProps } from "./lib/shapes/sphere-shape.js";
|
|
19
|
+
export { PerspectiveOffCenterFrustum as _PerspectiveOffCenterFrustum } from "./lib/perspective-off-center-frustum.js";
|
|
20
|
+
export { PerspectiveFrustum as _PerspectiveFrustum } from "./lib/perspective-frustum.js";
|
|
21
|
+
export { makeBoundingSphereFromPoints } from "./lib/algorithms/bounding-sphere-from-points.js";
|
|
22
|
+
export { makeAxisAlignedBoundingBoxFromPoints, makeOrientedBoundingBoxFromPoints } from "./lib/algorithms/bounding-box-from-points.js";
|
|
23
|
+
export { computeEigenDecomposition } from "./lib/algorithms/compute-eigen-decomposition.js";
|
|
24
|
+
export { intersectRayBounds, intersectRayTriangle, getClosestPointOnTriangle } from "./queries.js";
|
|
25
|
+
export type { QueryPoint, TriangleRayHit } from "./queries.js";
|
|
26
|
+
export { intersectOrientedBoxes2D } from "./oriented-box-2d.js";
|
|
27
|
+
export type { OrientedBox2D } from "./oriented-box-2d.js";
|
|
28
|
+
export { getOrientedBoundingBoxQuaternion, makeOrientedBoundingBoxFromQuaternion } from "./lib/algorithms/oriented-bounding-box-quaternion.js";
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/culling/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,aAAa,EAAC,uBAAoB;AAE/C,OAAO,EAAC,sBAAsB,EAAC,4DAAyD;AACxF,OAAO,EAAC,cAAc,EAAC,kDAA+C;AACtE,OAAO,EAAC,mBAAmB,EAAC,wDAAqD;AACjF,OAAO,EAAC,aAAa,EAAC,gCAA6B;AACnD,OAAO,EAAC,KAAK,EAAC,uBAAoB;AAClC,OAAO,EAAC,GAAG,EAAC,qBAAkB;AAE9B,YAAY,EAAC,aAAa,EAAE,eAAe,EAAC,uCAAoC;AAChF,OAAO,EAAC,QAAQ,EAAC,kCAA+B;AAChD,YAAY,EAAC,aAAa,EAAC,kCAA+B;AAC1D,OAAO,EAAC,YAAY,EAAC,sCAAmC;AACxD,YAAY,EAAC,iBAAiB,EAAC,sCAAmC;AAClE,OAAO,EAAC,aAAa,EAAC,uCAAoC;AAC1D,YAAY,EAAC,kBAAkB,EAAC,uCAAoC;AACpE,OAAO,EAAC,UAAU,EAAC,oCAAiC;AACpD,YAAY,EAAC,eAAe,EAAC,oCAAiC;AAC9D,OAAO,EAAC,WAAW,EAAC,qCAAkC;AACtD,YAAY,EAAC,gBAAgB,EAAC,qCAAkC;AAEhE,OAAO,EAAC,2BAA2B,IAAI,4BAA4B,EAAC,gDAA6C;AACjH,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,qCAAkC;AAEpF,OAAO,EAAC,4BAA4B,EAAC,wDAAqD;AAC1F,OAAO,EACL,oCAAoC,EACpC,iCAAiC,EAClC,qDAAkD;AACnD,OAAO,EAAC,yBAAyB,EAAC,wDAAqD;AAEvF,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAC,qBAAkB;AAC9F,YAAY,EAAC,UAAU,EAAE,cAAc,EAAC,qBAAkB;AAE1D,OAAO,EAAC,wBAAwB,EAAC,6BAA0B;AAC3D,YAAY,EAAC,aAAa,EAAC,6BAA0B;AAErD,OAAO,EACL,gCAAgC,EAChC,qCAAqC,EACtC,6DAA0D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
export { AxisAlignedBoundingBox } from "./lib/bounding-volumes/axis-aligned-bounding-box.js";
|
|
5
|
+
export { BoundingSphere } from "./lib/bounding-volumes/bounding-sphere.js";
|
|
6
|
+
export { OrientedBoundingBox } from "./lib/bounding-volumes/oriented-bounding-box.js";
|
|
7
|
+
export { CullingVolume } from "./lib/culling-volume.js";
|
|
8
|
+
export { Plane } from "./lib/plane.js";
|
|
9
|
+
export { Ray } from "./lib/ray.js";
|
|
10
|
+
export { BoxShape } from "./lib/shapes/box-shape.js";
|
|
11
|
+
export { CapsuleShape } from "./lib/shapes/capsule-shape.js";
|
|
12
|
+
export { CylinderShape } from "./lib/shapes/cylinder-shape.js";
|
|
13
|
+
export { PlaneShape } from "./lib/shapes/plane-shape.js";
|
|
14
|
+
export { SphereShape } from "./lib/shapes/sphere-shape.js";
|
|
15
|
+
export { PerspectiveOffCenterFrustum as _PerspectiveOffCenterFrustum } from "./lib/perspective-off-center-frustum.js";
|
|
16
|
+
export { PerspectiveFrustum as _PerspectiveFrustum } from "./lib/perspective-frustum.js";
|
|
17
|
+
export { makeBoundingSphereFromPoints } from "./lib/algorithms/bounding-sphere-from-points.js";
|
|
18
|
+
export { makeAxisAlignedBoundingBoxFromPoints, makeOrientedBoundingBoxFromPoints } from "./lib/algorithms/bounding-box-from-points.js";
|
|
19
|
+
export { computeEigenDecomposition } from "./lib/algorithms/compute-eigen-decomposition.js";
|
|
20
|
+
export { intersectRayBounds, intersectRayTriangle, getClosestPointOnTriangle } from "./queries.js";
|
|
21
|
+
export { intersectOrientedBoxes2D } from "./oriented-box-2d.js";
|
|
22
|
+
export { getOrientedBoundingBoxQuaternion, makeOrientedBoundingBoxFromQuaternion } from "./lib/algorithms/oriented-bounding-box-quaternion.js";
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/culling/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,sBAAsB,EAAC,4DAAyD;AACxF,OAAO,EAAC,cAAc,EAAC,kDAA+C;AACtE,OAAO,EAAC,mBAAmB,EAAC,wDAAqD;AACjF,OAAO,EAAC,aAAa,EAAC,gCAA6B;AACnD,OAAO,EAAC,KAAK,EAAC,uBAAoB;AAClC,OAAO,EAAC,GAAG,EAAC,qBAAkB;AAG9B,OAAO,EAAC,QAAQ,EAAC,kCAA+B;AAEhD,OAAO,EAAC,YAAY,EAAC,sCAAmC;AAExD,OAAO,EAAC,aAAa,EAAC,uCAAoC;AAE1D,OAAO,EAAC,UAAU,EAAC,oCAAiC;AAEpD,OAAO,EAAC,WAAW,EAAC,qCAAkC;AAGtD,OAAO,EAAC,2BAA2B,IAAI,4BAA4B,EAAC,gDAA6C;AACjH,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,qCAAkC;AAEpF,OAAO,EAAC,4BAA4B,EAAC,wDAAqD;AAC1F,OAAO,EACL,oCAAoC,EACpC,iCAAiC,EAClC,qDAAkD;AACnD,OAAO,EAAC,yBAAyB,EAAC,wDAAqD;AAEvF,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAC,qBAAkB;AAG9F,OAAO,EAAC,wBAAwB,EAAC,6BAA0B;AAG3D,OAAO,EACL,gCAAgC,EAChC,qCAAqC,EACtC,6DAA0D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OrientedBoundingBox } from "../bounding-volumes/oriented-bounding-box.js";
|
|
2
|
+
import { AxisAlignedBoundingBox } from "../bounding-volumes/axis-aligned-bounding-box.js";
|
|
3
|
+
/**
|
|
4
|
+
* Computes an instance of an OrientedBoundingBox of the given positions.
|
|
5
|
+
*
|
|
6
|
+
* This is an implementation of Stefan Gottschalk's Collision Queries using Oriented Bounding Boxes solution (PHD thesis).
|
|
7
|
+
* Reference: http://gamma.cs.unc.edu/users/gottschalk/main.pdf
|
|
8
|
+
*/
|
|
9
|
+
export declare function makeOrientedBoundingBoxFromPoints(positions: number[][], result?: OrientedBoundingBox): OrientedBoundingBox;
|
|
10
|
+
/**
|
|
11
|
+
* Computes an instance of an AxisAlignedBoundingBox. The box is determined by
|
|
12
|
+
* finding the points spaced the farthest apart on the x, y, and z axes.
|
|
13
|
+
*/
|
|
14
|
+
export declare function makeAxisAlignedBoundingBoxFromPoints(positions: readonly number[][], result?: AxisAlignedBoundingBox): AxisAlignedBoundingBox;
|
|
15
|
+
//# sourceMappingURL=bounding-box-from-points.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounding-box-from-points.d.ts","sourceRoot":"","sources":["../../../../src/culling/lib/algorithms/bounding-box-from-points.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,mBAAmB,EAAC,qDAAkD;AAC9E,OAAO,EAAC,sBAAsB,EAAC,yDAAsD;AAmBrF;;;;;GAKG;AAEH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,GAAE,mBAA+C,GACtD,mBAAmB,CAuFrB;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,EAC9B,MAAM,GAAE,sBAAqD,GAC5D,sBAAsB,CAoCxB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms.
|
|
6
|
+
// This file is derived from the Cesium math library under Apache 2 license
|
|
7
|
+
// See ../../../../LICENSE for the retained Cesium notice and Apache-2.0 terms.
|
|
8
|
+
import { Vector3, Matrix3 } from '@math.gl/core';
|
|
9
|
+
import { computeEigenDecomposition } from "./compute-eigen-decomposition.js";
|
|
10
|
+
import { OrientedBoundingBox } from "../bounding-volumes/oriented-bounding-box.js";
|
|
11
|
+
import { AxisAlignedBoundingBox } from "../bounding-volumes/axis-aligned-bounding-box.js";
|
|
12
|
+
const scratchVector2 = new Vector3();
|
|
13
|
+
const scratchVector3 = new Vector3();
|
|
14
|
+
const scratchVector4 = new Vector3();
|
|
15
|
+
const scratchVector5 = new Vector3();
|
|
16
|
+
const scratchVector6 = new Vector3();
|
|
17
|
+
const scratchCovarianceResult = new Matrix3();
|
|
18
|
+
const scratchEigenResult = {
|
|
19
|
+
diagonal: new Matrix3(),
|
|
20
|
+
unitary: new Matrix3()
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Computes an instance of an OrientedBoundingBox of the given positions.
|
|
24
|
+
*
|
|
25
|
+
* This is an implementation of Stefan Gottschalk's Collision Queries using Oriented Bounding Boxes solution (PHD thesis).
|
|
26
|
+
* Reference: http://gamma.cs.unc.edu/users/gottschalk/main.pdf
|
|
27
|
+
*/
|
|
28
|
+
/* eslint-disable max-statements */
|
|
29
|
+
export function makeOrientedBoundingBoxFromPoints(positions, result = new OrientedBoundingBox()) {
|
|
30
|
+
if (!positions || positions.length === 0) {
|
|
31
|
+
result.halfAxes = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
32
|
+
result.center = new Vector3();
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
const length = positions.length;
|
|
36
|
+
const meanPoint = new Vector3(0, 0, 0);
|
|
37
|
+
for (const position of positions) {
|
|
38
|
+
meanPoint.add(position);
|
|
39
|
+
}
|
|
40
|
+
const invLength = 1.0 / length;
|
|
41
|
+
meanPoint.multiplyByScalar(invLength);
|
|
42
|
+
let exx = 0.0;
|
|
43
|
+
let exy = 0.0;
|
|
44
|
+
let exz = 0.0;
|
|
45
|
+
let eyy = 0.0;
|
|
46
|
+
let eyz = 0.0;
|
|
47
|
+
let ezz = 0.0;
|
|
48
|
+
for (const position of positions) {
|
|
49
|
+
const p = scratchVector2.copy(position).subtract(meanPoint);
|
|
50
|
+
exx += p.x * p.x;
|
|
51
|
+
exy += p.x * p.y;
|
|
52
|
+
exz += p.x * p.z;
|
|
53
|
+
eyy += p.y * p.y;
|
|
54
|
+
eyz += p.y * p.z;
|
|
55
|
+
ezz += p.z * p.z;
|
|
56
|
+
}
|
|
57
|
+
exx *= invLength;
|
|
58
|
+
exy *= invLength;
|
|
59
|
+
exz *= invLength;
|
|
60
|
+
eyy *= invLength;
|
|
61
|
+
eyz *= invLength;
|
|
62
|
+
ezz *= invLength;
|
|
63
|
+
const covarianceMatrix = scratchCovarianceResult;
|
|
64
|
+
covarianceMatrix[0] = exx;
|
|
65
|
+
covarianceMatrix[1] = exy;
|
|
66
|
+
covarianceMatrix[2] = exz;
|
|
67
|
+
covarianceMatrix[3] = exy;
|
|
68
|
+
covarianceMatrix[4] = eyy;
|
|
69
|
+
covarianceMatrix[5] = eyz;
|
|
70
|
+
covarianceMatrix[6] = exz;
|
|
71
|
+
covarianceMatrix[7] = eyz;
|
|
72
|
+
covarianceMatrix[8] = ezz;
|
|
73
|
+
const { unitary } = computeEigenDecomposition(covarianceMatrix, scratchEigenResult);
|
|
74
|
+
const rotation = result.halfAxes.copy(unitary);
|
|
75
|
+
let v1 = rotation.getColumn(0, scratchVector4);
|
|
76
|
+
let v2 = rotation.getColumn(1, scratchVector5);
|
|
77
|
+
let v3 = rotation.getColumn(2, scratchVector6);
|
|
78
|
+
let u1 = -Number.MAX_VALUE;
|
|
79
|
+
let u2 = -Number.MAX_VALUE;
|
|
80
|
+
let u3 = -Number.MAX_VALUE;
|
|
81
|
+
let l1 = Number.MAX_VALUE;
|
|
82
|
+
let l2 = Number.MAX_VALUE;
|
|
83
|
+
let l3 = Number.MAX_VALUE;
|
|
84
|
+
for (const position of positions) {
|
|
85
|
+
scratchVector2.copy(position);
|
|
86
|
+
u1 = Math.max(scratchVector2.dot(v1), u1);
|
|
87
|
+
u2 = Math.max(scratchVector2.dot(v2), u2);
|
|
88
|
+
u3 = Math.max(scratchVector2.dot(v3), u3);
|
|
89
|
+
l1 = Math.min(scratchVector2.dot(v1), l1);
|
|
90
|
+
l2 = Math.min(scratchVector2.dot(v2), l2);
|
|
91
|
+
l3 = Math.min(scratchVector2.dot(v3), l3);
|
|
92
|
+
}
|
|
93
|
+
v1 = v1.multiplyByScalar(0.5 * (l1 + u1));
|
|
94
|
+
v2 = v2.multiplyByScalar(0.5 * (l2 + u2));
|
|
95
|
+
v3 = v3.multiplyByScalar(0.5 * (l3 + u3));
|
|
96
|
+
result.center.copy(v1).add(v2).add(v3);
|
|
97
|
+
const scale = scratchVector3.set(u1 - l1, u2 - l2, u3 - l3).multiplyByScalar(0.5);
|
|
98
|
+
const scaleMatrix = new Matrix3([scale[0], 0, 0, 0, scale[1], 0, 0, 0, scale[2]]);
|
|
99
|
+
result.halfAxes.multiplyRight(scaleMatrix);
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Computes an instance of an AxisAlignedBoundingBox. The box is determined by
|
|
104
|
+
* finding the points spaced the farthest apart on the x, y, and z axes.
|
|
105
|
+
*/
|
|
106
|
+
export function makeAxisAlignedBoundingBoxFromPoints(positions, result = new AxisAlignedBoundingBox()) {
|
|
107
|
+
if (!positions || positions.length === 0) {
|
|
108
|
+
result.minimum.set(0, 0, 0);
|
|
109
|
+
result.maximum.set(0, 0, 0);
|
|
110
|
+
result.center.set(0, 0, 0);
|
|
111
|
+
result.halfDiagonal.set(0, 0, 0);
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
let minimumX = positions[0][0];
|
|
115
|
+
let minimumY = positions[0][1];
|
|
116
|
+
let minimumZ = positions[0][2];
|
|
117
|
+
let maximumX = positions[0][0];
|
|
118
|
+
let maximumY = positions[0][1];
|
|
119
|
+
let maximumZ = positions[0][2];
|
|
120
|
+
for (const p of positions) {
|
|
121
|
+
const x = p[0];
|
|
122
|
+
const y = p[1];
|
|
123
|
+
const z = p[2];
|
|
124
|
+
minimumX = Math.min(x, minimumX);
|
|
125
|
+
maximumX = Math.max(x, maximumX);
|
|
126
|
+
minimumY = Math.min(y, minimumY);
|
|
127
|
+
maximumY = Math.max(y, maximumY);
|
|
128
|
+
minimumZ = Math.min(z, minimumZ);
|
|
129
|
+
maximumZ = Math.max(z, maximumZ);
|
|
130
|
+
}
|
|
131
|
+
result.minimum.set(minimumX, minimumY, minimumZ);
|
|
132
|
+
result.maximum.set(maximumX, maximumY, maximumZ);
|
|
133
|
+
result.center.copy(result.minimum).add(result.maximum).scale(0.5);
|
|
134
|
+
result.halfDiagonal.copy(result.maximum).subtract(result.center);
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=bounding-box-from-points.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounding-box-from-points.js","sourceRoot":"","sources":["../../../../src/culling/lib/algorithms/bounding-box-from-points.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BoundingSphere } from "../bounding-volumes/bounding-sphere.js";
|
|
2
|
+
/**
|
|
3
|
+
* Computes a tight-fitting bounding sphere enclosing a list of 3D Cartesian points.
|
|
4
|
+
*
|
|
5
|
+
* The bounding sphere is computed by running two algorithms, a naive algorithm and
|
|
6
|
+
* Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
|
|
7
|
+
* Bounding sphere computation article http://blogs.agi.com/insight3d/index.php/2008/02/04/a-bounding
|
|
8
|
+
*
|
|
9
|
+
* @param positions An array of points that the bounding sphere will enclose.
|
|
10
|
+
* @param result Optional object onto which to store the result.
|
|
11
|
+
* @returns The modified result parameter or a new `BoundingSphere` instance if not provided.
|
|
12
|
+
*/
|
|
13
|
+
export declare function makeBoundingSphereFromPoints(positions: number[][], result?: BoundingSphere): BoundingSphere;
|
|
14
|
+
//# sourceMappingURL=bounding-sphere-from-points.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounding-sphere-from-points.d.ts","sourceRoot":"","sources":["../../../../src/culling/lib/algorithms/bounding-sphere-from-points.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAiBnE;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EAAE,EAAE,EACrB,MAAM,GAAE,cAAqC,GAC5C,cAAc,CAqIhB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT AND Apache-2.0
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright 2011-2018 CesiumJS Contributors
|
|
4
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
5
|
+
// SPDX-FileComment: Derived from Cesium. See the repository LICENSE for upstream attribution and Apache-2.0 terms.
|
|
6
|
+
// This file is derived from the Cesium math library under Apache 2 license
|
|
7
|
+
// See ../../../../LICENSE for the retained Cesium notice and Apache-2.0 terms.
|
|
8
|
+
import { Vector3 } from '@math.gl/core';
|
|
9
|
+
import { BoundingSphere } from "../bounding-volumes/bounding-sphere.js";
|
|
10
|
+
/* eslint-disable */
|
|
11
|
+
const fromPointsXMin = new Vector3();
|
|
12
|
+
const fromPointsYMin = new Vector3();
|
|
13
|
+
const fromPointsZMin = new Vector3();
|
|
14
|
+
const fromPointsXMax = new Vector3();
|
|
15
|
+
const fromPointsYMax = new Vector3();
|
|
16
|
+
const fromPointsZMax = new Vector3();
|
|
17
|
+
const fromPointsCurrentPos = new Vector3();
|
|
18
|
+
const fromPointsScratch = new Vector3();
|
|
19
|
+
const fromPointsRitterCenter = new Vector3();
|
|
20
|
+
const fromPointsMinBoxPt = new Vector3();
|
|
21
|
+
const fromPointsMaxBoxPt = new Vector3();
|
|
22
|
+
const fromPointsNaiveCenterScratch = new Vector3();
|
|
23
|
+
// const volumeConstant = (4.0 / 3.0) * Math.PI;
|
|
24
|
+
/**
|
|
25
|
+
* Computes a tight-fitting bounding sphere enclosing a list of 3D Cartesian points.
|
|
26
|
+
*
|
|
27
|
+
* The bounding sphere is computed by running two algorithms, a naive algorithm and
|
|
28
|
+
* Ritter's algorithm. The smaller of the two spheres is used to ensure a tight fit.
|
|
29
|
+
* Bounding sphere computation article http://blogs.agi.com/insight3d/index.php/2008/02/04/a-bounding
|
|
30
|
+
*
|
|
31
|
+
* @param positions An array of points that the bounding sphere will enclose.
|
|
32
|
+
* @param result Optional object onto which to store the result.
|
|
33
|
+
* @returns The modified result parameter or a new `BoundingSphere` instance if not provided.
|
|
34
|
+
*/
|
|
35
|
+
export function makeBoundingSphereFromPoints(positions, result = new BoundingSphere()) {
|
|
36
|
+
if (!positions || positions.length === 0) {
|
|
37
|
+
return result.fromCenterRadius([0, 0, 0], 0);
|
|
38
|
+
}
|
|
39
|
+
const currentPos = fromPointsCurrentPos.copy(positions[0]);
|
|
40
|
+
const xMin = fromPointsXMin.copy(currentPos);
|
|
41
|
+
const yMin = fromPointsYMin.copy(currentPos);
|
|
42
|
+
const zMin = fromPointsZMin.copy(currentPos);
|
|
43
|
+
const xMax = fromPointsXMax.copy(currentPos);
|
|
44
|
+
const yMax = fromPointsYMax.copy(currentPos);
|
|
45
|
+
const zMax = fromPointsZMax.copy(currentPos);
|
|
46
|
+
for (const position of positions) {
|
|
47
|
+
currentPos.copy(position);
|
|
48
|
+
const x = currentPos.x;
|
|
49
|
+
const y = currentPos.y;
|
|
50
|
+
const z = currentPos.z;
|
|
51
|
+
// Store points containing the the smallest and largest components
|
|
52
|
+
if (x < xMin.x) {
|
|
53
|
+
xMin.copy(currentPos);
|
|
54
|
+
}
|
|
55
|
+
if (x > xMax.x) {
|
|
56
|
+
xMax.copy(currentPos);
|
|
57
|
+
}
|
|
58
|
+
if (y < yMin.y) {
|
|
59
|
+
yMin.copy(currentPos);
|
|
60
|
+
}
|
|
61
|
+
if (y > yMax.y) {
|
|
62
|
+
yMax.copy(currentPos);
|
|
63
|
+
}
|
|
64
|
+
if (z < zMin.z) {
|
|
65
|
+
zMin.copy(currentPos);
|
|
66
|
+
}
|
|
67
|
+
if (z > zMax.z) {
|
|
68
|
+
zMax.copy(currentPos);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Compute x-, y-, and z-spans (Squared distances b/n each component's min. and max.).
|
|
72
|
+
const xSpan = fromPointsScratch.copy(xMax).subtract(xMin).magnitudeSquared();
|
|
73
|
+
const ySpan = fromPointsScratch.copy(yMax).subtract(yMin).magnitudeSquared();
|
|
74
|
+
const zSpan = fromPointsScratch.copy(zMax).subtract(zMin).magnitudeSquared();
|
|
75
|
+
// Set the diameter endpoints to the largest span.
|
|
76
|
+
let diameter1 = xMin;
|
|
77
|
+
let diameter2 = xMax;
|
|
78
|
+
let maxSpan = xSpan;
|
|
79
|
+
if (ySpan > maxSpan) {
|
|
80
|
+
maxSpan = ySpan;
|
|
81
|
+
diameter1 = yMin;
|
|
82
|
+
diameter2 = yMax;
|
|
83
|
+
}
|
|
84
|
+
if (zSpan > maxSpan) {
|
|
85
|
+
maxSpan = zSpan;
|
|
86
|
+
diameter1 = zMin;
|
|
87
|
+
diameter2 = zMax;
|
|
88
|
+
}
|
|
89
|
+
// Calculate the center of the initial sphere found by Ritter's algorithm
|
|
90
|
+
const ritterCenter = fromPointsRitterCenter;
|
|
91
|
+
ritterCenter.x = (diameter1.x + diameter2.x) * 0.5;
|
|
92
|
+
ritterCenter.y = (diameter1.y + diameter2.y) * 0.5;
|
|
93
|
+
ritterCenter.z = (diameter1.z + diameter2.z) * 0.5;
|
|
94
|
+
// Calculate the radius of the initial sphere found by Ritter's algorithm
|
|
95
|
+
let radiusSquared = fromPointsScratch.copy(diameter2).subtract(ritterCenter).magnitudeSquared();
|
|
96
|
+
let ritterRadius = Math.sqrt(radiusSquared);
|
|
97
|
+
// Find the center of the sphere found using the Naive method.
|
|
98
|
+
const minBoxPt = fromPointsMinBoxPt;
|
|
99
|
+
minBoxPt.x = xMin.x;
|
|
100
|
+
minBoxPt.y = yMin.y;
|
|
101
|
+
minBoxPt.z = zMin.z;
|
|
102
|
+
const maxBoxPt = fromPointsMaxBoxPt;
|
|
103
|
+
maxBoxPt.x = xMax.x;
|
|
104
|
+
maxBoxPt.y = yMax.y;
|
|
105
|
+
maxBoxPt.z = zMax.z;
|
|
106
|
+
const naiveCenter = fromPointsNaiveCenterScratch
|
|
107
|
+
.copy(minBoxPt)
|
|
108
|
+
.add(maxBoxPt)
|
|
109
|
+
.multiplyByScalar(0.5);
|
|
110
|
+
// Begin 2nd pass to find naive radius and modify the ritter sphere.
|
|
111
|
+
let naiveRadius = 0;
|
|
112
|
+
for (const position of positions) {
|
|
113
|
+
currentPos.copy(position);
|
|
114
|
+
// Find the furthest point from the naive center to calculate the naive radius.
|
|
115
|
+
const r = fromPointsScratch.copy(currentPos).subtract(naiveCenter).magnitude();
|
|
116
|
+
if (r > naiveRadius) {
|
|
117
|
+
naiveRadius = r;
|
|
118
|
+
}
|
|
119
|
+
// Make adjustments to the Ritter Sphere to include all points.
|
|
120
|
+
const oldCenterToPointSquared = fromPointsScratch
|
|
121
|
+
.copy(currentPos)
|
|
122
|
+
.subtract(ritterCenter)
|
|
123
|
+
.magnitudeSquared();
|
|
124
|
+
if (oldCenterToPointSquared > radiusSquared) {
|
|
125
|
+
const oldCenterToPoint = Math.sqrt(oldCenterToPointSquared);
|
|
126
|
+
// Calculate new radius to include the point that lies outside
|
|
127
|
+
ritterRadius = (ritterRadius + oldCenterToPoint) * 0.5;
|
|
128
|
+
radiusSquared = ritterRadius * ritterRadius;
|
|
129
|
+
// Calculate center of new Ritter sphere
|
|
130
|
+
const oldToNew = oldCenterToPoint - ritterRadius;
|
|
131
|
+
ritterCenter.x = (ritterRadius * ritterCenter.x + oldToNew * currentPos.x) / oldCenterToPoint;
|
|
132
|
+
ritterCenter.y = (ritterRadius * ritterCenter.y + oldToNew * currentPos.y) / oldCenterToPoint;
|
|
133
|
+
ritterCenter.z = (ritterRadius * ritterCenter.z + oldToNew * currentPos.z) / oldCenterToPoint;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (ritterRadius < naiveRadius) {
|
|
137
|
+
ritterCenter.to(result.center);
|
|
138
|
+
result.radius = ritterRadius;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
naiveCenter.to(result.center);
|
|
142
|
+
result.radius = naiveRadius;
|
|
143
|
+
}
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=bounding-sphere-from-points.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounding-sphere-from-points.js","sourceRoot":"","sources":["../../../../src/culling/lib/algorithms/bounding-sphere-from-points.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,oEAAoE;AACpE,4DAA4D;AAC5D,mHAAmH;AAEnH,2EAA2E;AAC3E,+EAA+E;AAE/E,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,oBAAoB;AACpB,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC3C,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAE,CAAC;AACxC,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7C,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AACzC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AACzC,MAAM,4BAA4B,GAAG,IAAI,OAAO,EAAE,CAAC;AACnD,gDAAgD;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAqB,EACrB,SAAyB,IAAI,cAAc,EAAE;IAE7C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAEvB,kEAAkE;QAClE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAE7E,kDAAkD;IAClD,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,CAAC;QAChB,SAAS,GAAG,IAAI,CAAC;QACjB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,CAAC;QAChB,SAAS,GAAG,IAAI,CAAC;QACjB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,yEAAyE;IACzE,MAAM,YAAY,GAAG,sBAAsB,CAAC;IAC5C,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACnD,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACnD,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAEnD,yEAAyE;IACzE,IAAI,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChG,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5C,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC;IACpC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC;IACpC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GAAG,4BAA4B;SAC7C,IAAI,CAAC,QAAQ,CAAC;SACd,GAAG,CAAC,QAAQ,CAAC;SACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEzB,oEAAoE;IACpE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1B,+EAA+E;QAC/E,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;QAC/E,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;YACpB,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,+DAA+D;QAC/D,MAAM,uBAAuB,GAAG,iBAAiB;aAC9C,IAAI,CAAC,UAAU,CAAC;aAChB,QAAQ,CAAC,YAAY,CAAC;aACtB,gBAAgB,EAAE,CAAC;QAEtB,IAAI,uBAAuB,GAAG,aAAa,EAAE,CAAC;YAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC5D,8DAA8D;YAC9D,YAAY,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC;YACvD,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;YAC5C,wCAAwC;YACxC,MAAM,QAAQ,GAAG,gBAAgB,GAAG,YAAY,CAAC;YACjD,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;YAC9F,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;YAC9F,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;QAChG,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;QAC/B,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Matrix3 } from '@math.gl/core';
|
|
2
|
+
export type EigenDecomposition = {
|
|
3
|
+
unitary: Matrix3;
|
|
4
|
+
diagonal: Matrix3;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Computes the eigenvectors and eigenvalues of a symmetric matrix.
|
|
8
|
+
*
|
|
9
|
+
* - Returns a diagonal matrix and unitary matrix such that:
|
|
10
|
+
* `matrix = unitary matrix * diagonal matrix * transpose(unitary matrix)`
|
|
11
|
+
* - The values along the diagonal of the diagonal matrix are the eigenvalues. The columns
|
|
12
|
+
* of the unitary matrix are the corresponding eigenvectors.
|
|
13
|
+
* - This routine was created based upon Matrix Computations, 3rd ed., by Golub and Van Loan,
|
|
14
|
+
* section 8.4.3 The Classical Jacobi Algorithm
|
|
15
|
+
*
|
|
16
|
+
* @param matrix The 3x3 matrix to decompose into diagonal and unitary matrix. Expected to be symmetric.
|
|
17
|
+
* @param result Optional object with unitary and diagonal properties which are matrices onto which to store the result.
|
|
18
|
+
* @returns An object with unitary and diagonal properties which are the unitary and diagonal matrices, respectively.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const a = //... symmetric matrix
|
|
22
|
+
* const result = {
|
|
23
|
+
* unitary : new Matrix3(),
|
|
24
|
+
* diagonal : new Matrix3()
|
|
25
|
+
* };
|
|
26
|
+
* computeEigenDecomposition(a, result);
|
|
27
|
+
*
|
|
28
|
+
* const unitaryTranspose = Matrix3.transpose(result.unitary, new Matrix3());
|
|
29
|
+
* const b = Matrix3.multiply(result.unitary, result.diagonal, new Matrix3());
|
|
30
|
+
* Matrix3.multiply(b, unitaryTranspose, b); // b is now equal to a
|
|
31
|
+
*
|
|
32
|
+
* const lambda = result.diagonal.getColumn(0, new Vector3()).x; // first eigenvalue
|
|
33
|
+
* const v = result.unitary.getColumn(0, new Vector3()); // first eigenvector
|
|
34
|
+
* const c = v.multiplyByScalar(lambda); // equal to v.transformByMatrix3(a)
|
|
35
|
+
*/
|
|
36
|
+
export declare function computeEigenDecomposition(matrix: number[], result?: EigenDecomposition): EigenDecomposition;
|
|
37
|
+
//# sourceMappingURL=compute-eigen-decomposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compute-eigen-decomposition.d.ts","sourceRoot":"","sources":["../../../../src/culling/lib/algorithms/compute-eigen-decomposition.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,OAAO,EAAa,MAAM,eAAe,CAAC;AASlD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAEhB,MAAM,GAAE,kBAAuB,GAC9B,kBAAkB,CAkCpB"}
|