@math.gl/geometry 5.0.0-alpha.17 → 5.0.0-alpha.19
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/README.md +7 -1
- 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 +2022 -0
- package/dist/culling/index.cjs.map +6 -0
- package/dist/culling/index.d.ts +28 -0
- package/dist/culling/index.d.ts.map +1 -0
- package/dist/culling/index.js +22 -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/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 +68 -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 +259 -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/lib/geometry.d.ts +1 -1
- package/dist/lib/geometry.d.ts.map +1 -1
- 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 +1414 -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 +42 -0
- package/dist/polygon/subdivide-polyline.d.ts.map +1 -0
- package/dist/polygon/subdivide-polyline.js +109 -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 +49 -3
- package/src/culling/constants.ts +6 -0
- package/src/culling/index.ts +40 -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/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 +355 -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/lib/geometry-utils.ts +1 -1
- package/src/lib/geometry.ts +1 -1
- 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 +31 -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 +160 -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/utils/index.ts", "../../src/utils/constants.ts", "../../src/utils/gl-type.ts", "../../src/utils/geometry.ts", "../../src/utils/attribute-iterator.ts", "../../src/utils/primitive-iterator.ts", "../../src/utils/compute-vertex-normals.ts", "../../src/utils/rgb565.ts", "../../src/utils/typed-array-utils.ts", "../../src/utils/attribute-compression.ts", "../../src/utils/coordinates.ts", "../../src/utils/mesh-processing.ts", "../../src/utils/interpolate-packed-attributes.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_core", "import_core", "i"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type { TypedArray, TypedArrayConstructor } from '@math.gl/core/types';
|
|
2
|
+
export { GL, GL_TYPE, GL_PRIMITIVE, GL_PRIMITIVE_MODE } from "./constants.js";
|
|
3
|
+
export { default as GLType } from "./gl-type.js";
|
|
4
|
+
export type { Geometry, GeometryAttribute } from "./geometry.js";
|
|
5
|
+
export { isGeometry } from "./geometry.js";
|
|
6
|
+
export type { Primitive } from "./primitive-iterator.js";
|
|
7
|
+
export { makeAttributeIterator } from "./attribute-iterator.js";
|
|
8
|
+
export { makePrimitiveIterator } from "./primitive-iterator.js";
|
|
9
|
+
export { computeVertexNormals } from "./compute-vertex-normals.js";
|
|
10
|
+
export { encodeRGB565, decodeRGB565 } from "./rgb565.js";
|
|
11
|
+
export { concatTypedArrays } from "./typed-array-utils.js";
|
|
12
|
+
export { octEncodeInRange, octEncode, octEncodeToVector4, octDecodeInRange, octDecode, octDecodeFromVector4, octPackFloat, octEncodeFloat, octDecodeFloat, octPack, octUnpack, compressTextureCoordinates, decompressTextureCoordinates, zigZagDeltaDecode } from "./attribute-compression.js";
|
|
13
|
+
export { emod } from "./coordinates.js";
|
|
14
|
+
export { transformGeometry, mergeGeometries, weldGeometry, getDegenerateTriangles } from "./mesh-processing.js";
|
|
15
|
+
export type { WeldGeometryOptions, WeldGeometryResult } from "./mesh-processing.js";
|
|
16
|
+
export { interpolatePackedAttributes } from "./interpolate-packed-attributes.js";
|
|
17
|
+
export type { PackedAttributeType, PackedAttributeInterpolation, PackedAttribute, AttributeInterpolationProvenance, PackedAttributeInterpolationOptions } from "./interpolate-packed-attributes.js";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,UAAU,EAAE,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAC,uBAAoB;AACzE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,qBAAkB;AAE5C,YAAY,EAAC,QAAQ,EAAE,iBAAiB,EAAC,sBAAmB;AAC5D,OAAO,EAAC,UAAU,EAAC,sBAAmB;AAEtC,YAAY,EAAC,SAAS,EAAC,gCAA6B;AACpD,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,oBAAiB;AACpD,OAAO,EAAC,iBAAiB,EAAC,+BAA4B;AAEtD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EAClB,mCAAgC;AAEjC,OAAO,EAAC,IAAI,EAAC,yBAAsB;AAEnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,6BAA0B;AAC3B,YAAY,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,6BAA0B;AAE/E,OAAO,EAAC,2BAA2B,EAAC,2CAAwC;AAC5E,YAAY,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,eAAe,EACf,gCAAgC,EAChC,mCAAmC,EACpC,2CAAwC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
export { GL, GL_TYPE, GL_PRIMITIVE, GL_PRIMITIVE_MODE } from "./constants.js";
|
|
5
|
+
export { default as GLType } from "./gl-type.js";
|
|
6
|
+
export { isGeometry } from "./geometry.js";
|
|
7
|
+
export { makeAttributeIterator } from "./attribute-iterator.js";
|
|
8
|
+
export { makePrimitiveIterator } from "./primitive-iterator.js";
|
|
9
|
+
export { computeVertexNormals } from "./compute-vertex-normals.js";
|
|
10
|
+
export { encodeRGB565, decodeRGB565 } from "./rgb565.js";
|
|
11
|
+
export { concatTypedArrays } from "./typed-array-utils.js";
|
|
12
|
+
export { octEncodeInRange, octEncode, octEncodeToVector4, octDecodeInRange, octDecode, octDecodeFromVector4, octPackFloat, octEncodeFloat, octDecodeFloat, octPack, octUnpack, compressTextureCoordinates, decompressTextureCoordinates, zigZagDeltaDecode } from "./attribute-compression.js";
|
|
13
|
+
export { emod } from "./coordinates.js";
|
|
14
|
+
export { transformGeometry, mergeGeometries, weldGeometry, getDegenerateTriangles } from "./mesh-processing.js";
|
|
15
|
+
export { interpolatePackedAttributes } from "./interpolate-packed-attributes.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAC,uBAAoB;AACzE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,qBAAkB;AAG5C,OAAO,EAAC,UAAU,EAAC,sBAAmB;AAGtC,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,oBAAiB;AACpD,OAAO,EAAC,iBAAiB,EAAC,+BAA4B;AAEtD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EAClB,mCAAgC;AAEjC,OAAO,EAAC,IAAI,EAAC,yBAAsB;AAEnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACvB,6BAA0B;AAG3B,OAAO,EAAC,2BAA2B,EAAC,2CAAwC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// dist/utils/interpolate-packed-attributes.js
|
|
20
|
+
var interpolate_packed_attributes_exports = {};
|
|
21
|
+
__export(interpolate_packed_attributes_exports, {
|
|
22
|
+
interpolatePackedAttributes: () => interpolatePackedAttributes
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(interpolate_packed_attributes_exports);
|
|
25
|
+
var BYTE_SIZES = {
|
|
26
|
+
int8: 1,
|
|
27
|
+
uint8: 1,
|
|
28
|
+
int16: 2,
|
|
29
|
+
uint16: 2,
|
|
30
|
+
int32: 4,
|
|
31
|
+
uint32: 4,
|
|
32
|
+
float32: 4,
|
|
33
|
+
float64: 8
|
|
34
|
+
};
|
|
35
|
+
function interpolatePackedAttributes(source, provenance, options) {
|
|
36
|
+
const { byteStride, attributes, littleEndian = true, maxOutputBytes = 64 * 1024 * 1024 } = options;
|
|
37
|
+
const { sourceVertexIndices, sourceVertexWeights } = provenance;
|
|
38
|
+
if (!Number.isSafeInteger(byteStride) || byteStride <= 0 || source.byteLength % byteStride || !Array.isArray(options.attributes) || typeof littleEndian !== "boolean" || !Number.isSafeInteger(maxOutputBytes) || maxOutputBytes < 0 || !Number.isSafeInteger(sourceVertexIndices.length) || sourceVertexIndices.length < 0 || sourceVertexIndices.length % 3 || sourceVertexIndices.length !== sourceVertexWeights.length) {
|
|
39
|
+
throw new RangeError("Invalid packed attribute layout or provenance lengths");
|
|
40
|
+
}
|
|
41
|
+
const outputCount = sourceVertexIndices.length / 3;
|
|
42
|
+
const outputBytes = outputCount * byteStride;
|
|
43
|
+
if (!Number.isSafeInteger(outputBytes) || outputBytes > maxOutputBytes) {
|
|
44
|
+
throw new RangeError("Packed attribute interpolation exceeded maxOutputBytes");
|
|
45
|
+
}
|
|
46
|
+
const ranges = [];
|
|
47
|
+
for (const attribute of attributes) {
|
|
48
|
+
if (!attribute || typeof attribute !== "object" || !Object.prototype.hasOwnProperty.call(BYTE_SIZES, attribute.type) || !Number.isSafeInteger(attribute.size) || attribute.size <= 0 || !Number.isSafeInteger(attribute.byteOffset) || attribute.byteOffset < 0) {
|
|
49
|
+
throw new RangeError("Invalid packed attribute descriptor");
|
|
50
|
+
}
|
|
51
|
+
const end = attribute.byteOffset + attribute.size * BYTE_SIZES[attribute.type];
|
|
52
|
+
if (!Number.isSafeInteger(end) || end > byteStride || ranges.some(([start, previousEnd]) => attribute.byteOffset < previousEnd && end > start)) {
|
|
53
|
+
throw new RangeError("Packed attribute ranges must fit the stride and not overlap");
|
|
54
|
+
}
|
|
55
|
+
ranges.push([attribute.byteOffset, end]);
|
|
56
|
+
if (typeof attribute.interpolation === "string") {
|
|
57
|
+
validateInterpolation(attribute.interpolation);
|
|
58
|
+
} else {
|
|
59
|
+
if (!Array.isArray(attribute.interpolation) || attribute.interpolation.length !== attribute.size) {
|
|
60
|
+
throw new RangeError("Expected one interpolation policy per component");
|
|
61
|
+
}
|
|
62
|
+
for (let component = 0; component < attribute.size; component++) {
|
|
63
|
+
validateInterpolation(attribute.interpolation[component]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const sourceCount = source.byteLength / byteStride;
|
|
68
|
+
const input = new DataView(source.buffer, source.byteOffset, source.byteLength);
|
|
69
|
+
const output = new Uint8Array(outputBytes);
|
|
70
|
+
const result = new DataView(output.buffer);
|
|
71
|
+
for (let vertex = 0; vertex < outputCount; vertex++) {
|
|
72
|
+
let sum = 0;
|
|
73
|
+
let firstSource = -1;
|
|
74
|
+
let contributors = 0;
|
|
75
|
+
for (let slot = 0; slot < 3; slot++) {
|
|
76
|
+
const weight = sourceVertexWeights[vertex * 3 + slot];
|
|
77
|
+
const index = sourceVertexIndices[vertex * 3 + slot];
|
|
78
|
+
if (!Number.isFinite(weight) || weight < 0 || weight > 1 || weight > 0 && (!Number.isSafeInteger(index) || index < 0 || index >= sourceCount)) {
|
|
79
|
+
throw new RangeError("Invalid contributing source index or interpolation weight");
|
|
80
|
+
}
|
|
81
|
+
if (weight > 0) {
|
|
82
|
+
contributors++;
|
|
83
|
+
if (firstSource < 0)
|
|
84
|
+
firstSource = index;
|
|
85
|
+
}
|
|
86
|
+
sum += weight;
|
|
87
|
+
}
|
|
88
|
+
if (firstSource < 0 || Math.abs(sum - 1) > 1e-10) {
|
|
89
|
+
throw new RangeError("Interpolation weights must sum to one");
|
|
90
|
+
}
|
|
91
|
+
output.set(source.subarray(firstSource * byteStride, (firstSource + 1) * byteStride), vertex * byteStride);
|
|
92
|
+
for (const attribute of attributes) {
|
|
93
|
+
for (let component = 0; component < attribute.size; component++) {
|
|
94
|
+
const offset = attribute.byteOffset + component * BYTE_SIZES[attribute.type];
|
|
95
|
+
const policy = typeof attribute.interpolation === "string" ? attribute.interpolation : attribute.interpolation[component];
|
|
96
|
+
const firstValue = readComponent(input, firstSource * byteStride + offset, attribute.type, littleEndian);
|
|
97
|
+
let value = 0;
|
|
98
|
+
for (let slot = 0; slot < 3; slot++) {
|
|
99
|
+
const weight = sourceVertexWeights[vertex * 3 + slot];
|
|
100
|
+
if (weight === 0)
|
|
101
|
+
continue;
|
|
102
|
+
const sourceValue = readComponent(input, sourceVertexIndices[vertex * 3 + slot] * byteStride + offset, attribute.type, littleEndian);
|
|
103
|
+
if (!Number.isFinite(sourceValue))
|
|
104
|
+
throw new RangeError("Packed attributes must be finite");
|
|
105
|
+
if (policy === "flat" && sourceValue !== firstValue) {
|
|
106
|
+
throw new RangeError("Flat attribute contributors must agree");
|
|
107
|
+
}
|
|
108
|
+
value += sourceValue * weight;
|
|
109
|
+
}
|
|
110
|
+
if (policy === "linear") {
|
|
111
|
+
if (!Number.isFinite(value))
|
|
112
|
+
throw new RangeError("Interpolated attributes must be finite");
|
|
113
|
+
if (contributors !== 1 || sum !== 1) {
|
|
114
|
+
writeComponent(result, vertex * byteStride + offset, attribute.type, value, littleEndian);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
function validateInterpolation(interpolation) {
|
|
123
|
+
if (interpolation !== "linear" && interpolation !== "flat") {
|
|
124
|
+
throw new RangeError("Expected linear or flat interpolation");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function readComponent(view, offset, type, littleEndian) {
|
|
128
|
+
switch (type) {
|
|
129
|
+
case "int8":
|
|
130
|
+
return view.getInt8(offset);
|
|
131
|
+
case "uint8":
|
|
132
|
+
return view.getUint8(offset);
|
|
133
|
+
case "int16":
|
|
134
|
+
return view.getInt16(offset, littleEndian);
|
|
135
|
+
case "uint16":
|
|
136
|
+
return view.getUint16(offset, littleEndian);
|
|
137
|
+
case "int32":
|
|
138
|
+
return view.getInt32(offset, littleEndian);
|
|
139
|
+
case "uint32":
|
|
140
|
+
return view.getUint32(offset, littleEndian);
|
|
141
|
+
case "float32":
|
|
142
|
+
return view.getFloat32(offset, littleEndian);
|
|
143
|
+
case "float64":
|
|
144
|
+
return view.getFloat64(offset, littleEndian);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function writeComponent(view, offset, type, value, littleEndian) {
|
|
148
|
+
const integer = Math.round(value);
|
|
149
|
+
switch (type) {
|
|
150
|
+
case "int8":
|
|
151
|
+
view.setInt8(offset, integer);
|
|
152
|
+
break;
|
|
153
|
+
case "uint8":
|
|
154
|
+
view.setUint8(offset, integer);
|
|
155
|
+
break;
|
|
156
|
+
case "int16":
|
|
157
|
+
view.setInt16(offset, integer, littleEndian);
|
|
158
|
+
break;
|
|
159
|
+
case "uint16":
|
|
160
|
+
view.setUint16(offset, integer, littleEndian);
|
|
161
|
+
break;
|
|
162
|
+
case "int32":
|
|
163
|
+
view.setInt32(offset, integer, littleEndian);
|
|
164
|
+
break;
|
|
165
|
+
case "uint32":
|
|
166
|
+
view.setUint32(offset, integer, littleEndian);
|
|
167
|
+
break;
|
|
168
|
+
case "float32":
|
|
169
|
+
view.setFloat32(offset, value, littleEndian);
|
|
170
|
+
break;
|
|
171
|
+
case "float64":
|
|
172
|
+
view.setFloat64(offset, value, littleEndian);
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=interpolate-packed-attributes.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/interpolate-packed-attributes.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Scalar storage formats supported by packed attribute interpolation. */
|
|
2
|
+
export type PackedAttributeType = 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'float32' | 'float64';
|
|
3
|
+
/** Interpolate numeric values, or require identical values at every contributing vertex. */
|
|
4
|
+
export type PackedAttributeInterpolation = 'linear' | 'flat';
|
|
5
|
+
/** One explicitly described attribute inside an interleaved vertex record. */
|
|
6
|
+
export type PackedAttribute = {
|
|
7
|
+
/** Scalar storage format; values are interpolated in the encoded domain. */
|
|
8
|
+
type: PackedAttributeType;
|
|
9
|
+
/** Number of scalar components. */
|
|
10
|
+
size: number;
|
|
11
|
+
/** Byte offset within each record; unaligned offsets are supported. */
|
|
12
|
+
byteOffset: number;
|
|
13
|
+
/** Policy for the whole attribute, or one explicit policy per component. */
|
|
14
|
+
interpolation: PackedAttributeInterpolation | readonly PackedAttributeInterpolation[];
|
|
15
|
+
};
|
|
16
|
+
/** Three original source indices and corresponding weights per output vertex. */
|
|
17
|
+
export type AttributeInterpolationProvenance = {
|
|
18
|
+
/** Indices into the original source records, matching polygon subdivision provenance. */
|
|
19
|
+
sourceVertexIndices: ArrayLike<number>;
|
|
20
|
+
/** Nonnegative finite weights summing to one per triplet; zero-weight indices are ignored. */
|
|
21
|
+
sourceVertexWeights: ArrayLike<number>;
|
|
22
|
+
};
|
|
23
|
+
/** Byte layout, interpolation policies and output allocation limit. */
|
|
24
|
+
export type PackedAttributeInterpolationOptions = {
|
|
25
|
+
/** Positive byte length of a source and output vertex record. */
|
|
26
|
+
byteStride: number;
|
|
27
|
+
/** Nonoverlapping attribute ranges. Unlisted bytes are copied from the first contributor. */
|
|
28
|
+
attributes: readonly PackedAttribute[];
|
|
29
|
+
/** Byte order for multibyte components. Default true. */
|
|
30
|
+
littleEndian?: boolean;
|
|
31
|
+
/** Maximum allocated output byte length. Default 64 MiB; zero permits empty output only. */
|
|
32
|
+
maxOutputBytes?: number;
|
|
33
|
+
};
|
|
34
|
+
/** Reconstruct interleaved attributes from subdivision's original-vertex provenance.
|
|
35
|
+
* Inputs are never modified. Linear integer components use Math.round once at final output;
|
|
36
|
+
* this is deliberately not repeated midpoint quantization. Flat components reject differing
|
|
37
|
+
* contributing values instead of guessing categorical semantics. Padding and unlisted bytes
|
|
38
|
+
* come from the first positive-weight contributor. Normals are not renormalized, and normalized
|
|
39
|
+
* GPU formats are not decoded. Duplicate source records at attribute seams before subdivision.
|
|
40
|
+
* @throws RangeError For invalid layout, provenance, nonfinite values or allocation limits.
|
|
41
|
+
*/
|
|
42
|
+
export declare function interpolatePackedAttributes(source: Uint8Array, provenance: AttributeInterpolationProvenance, options: PackedAttributeInterpolationOptions): Uint8Array;
|
|
43
|
+
//# sourceMappingURL=interpolate-packed-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate-packed-attributes.d.ts","sourceRoot":"","sources":["../../src/utils/interpolate-packed-attributes.ts"],"names":[],"mappings":"AAIA,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,4FAA4F;AAC5F,MAAM,MAAM,4BAA4B,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,MAAM,eAAe,GAAG;IAC5B,4EAA4E;IAC5E,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,EAAE,4BAA4B,GAAG,SAAS,4BAA4B,EAAE,CAAC;CACvF,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,yFAAyF;IACzF,mBAAmB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,8FAA8F;IAC9F,mBAAmB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,mCAAmC,GAAG;IAChD,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAaF;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,gCAAgC,EAC5C,OAAO,EAAE,mCAAmC,GAC3C,UAAU,CA2IZ"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
const BYTE_SIZES = {
|
|
5
|
+
int8: 1,
|
|
6
|
+
uint8: 1,
|
|
7
|
+
int16: 2,
|
|
8
|
+
uint16: 2,
|
|
9
|
+
int32: 4,
|
|
10
|
+
uint32: 4,
|
|
11
|
+
float32: 4,
|
|
12
|
+
float64: 8
|
|
13
|
+
};
|
|
14
|
+
/** Reconstruct interleaved attributes from subdivision's original-vertex provenance.
|
|
15
|
+
* Inputs are never modified. Linear integer components use Math.round once at final output;
|
|
16
|
+
* this is deliberately not repeated midpoint quantization. Flat components reject differing
|
|
17
|
+
* contributing values instead of guessing categorical semantics. Padding and unlisted bytes
|
|
18
|
+
* come from the first positive-weight contributor. Normals are not renormalized, and normalized
|
|
19
|
+
* GPU formats are not decoded. Duplicate source records at attribute seams before subdivision.
|
|
20
|
+
* @throws RangeError For invalid layout, provenance, nonfinite values or allocation limits.
|
|
21
|
+
*/
|
|
22
|
+
export function interpolatePackedAttributes(source, provenance, options) {
|
|
23
|
+
const { byteStride, attributes, littleEndian = true, maxOutputBytes = 64 * 1024 * 1024 } = options;
|
|
24
|
+
const { sourceVertexIndices, sourceVertexWeights } = provenance;
|
|
25
|
+
if (!Number.isSafeInteger(byteStride) ||
|
|
26
|
+
byteStride <= 0 ||
|
|
27
|
+
source.byteLength % byteStride ||
|
|
28
|
+
!Array.isArray(options.attributes) ||
|
|
29
|
+
typeof littleEndian !== 'boolean' ||
|
|
30
|
+
!Number.isSafeInteger(maxOutputBytes) ||
|
|
31
|
+
maxOutputBytes < 0 ||
|
|
32
|
+
!Number.isSafeInteger(sourceVertexIndices.length) ||
|
|
33
|
+
sourceVertexIndices.length < 0 ||
|
|
34
|
+
sourceVertexIndices.length % 3 ||
|
|
35
|
+
sourceVertexIndices.length !== sourceVertexWeights.length) {
|
|
36
|
+
throw new RangeError('Invalid packed attribute layout or provenance lengths');
|
|
37
|
+
}
|
|
38
|
+
const outputCount = sourceVertexIndices.length / 3;
|
|
39
|
+
const outputBytes = outputCount * byteStride;
|
|
40
|
+
if (!Number.isSafeInteger(outputBytes) || outputBytes > maxOutputBytes) {
|
|
41
|
+
throw new RangeError('Packed attribute interpolation exceeded maxOutputBytes');
|
|
42
|
+
}
|
|
43
|
+
const ranges = [];
|
|
44
|
+
for (const attribute of attributes) {
|
|
45
|
+
if (!attribute ||
|
|
46
|
+
typeof attribute !== 'object' ||
|
|
47
|
+
!Object.prototype.hasOwnProperty.call(BYTE_SIZES, attribute.type) ||
|
|
48
|
+
!Number.isSafeInteger(attribute.size) ||
|
|
49
|
+
attribute.size <= 0 ||
|
|
50
|
+
!Number.isSafeInteger(attribute.byteOffset) ||
|
|
51
|
+
attribute.byteOffset < 0) {
|
|
52
|
+
throw new RangeError('Invalid packed attribute descriptor');
|
|
53
|
+
}
|
|
54
|
+
const end = attribute.byteOffset + attribute.size * BYTE_SIZES[attribute.type];
|
|
55
|
+
if (!Number.isSafeInteger(end) ||
|
|
56
|
+
end > byteStride ||
|
|
57
|
+
ranges.some(([start, previousEnd]) => attribute.byteOffset < previousEnd && end > start)) {
|
|
58
|
+
throw new RangeError('Packed attribute ranges must fit the stride and not overlap');
|
|
59
|
+
}
|
|
60
|
+
ranges.push([attribute.byteOffset, end]);
|
|
61
|
+
if (typeof attribute.interpolation === 'string') {
|
|
62
|
+
validateInterpolation(attribute.interpolation);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (!Array.isArray(attribute.interpolation) ||
|
|
66
|
+
attribute.interpolation.length !== attribute.size) {
|
|
67
|
+
throw new RangeError('Expected one interpolation policy per component');
|
|
68
|
+
}
|
|
69
|
+
for (let component = 0; component < attribute.size; component++) {
|
|
70
|
+
validateInterpolation(attribute.interpolation[component]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const sourceCount = source.byteLength / byteStride;
|
|
75
|
+
const input = new DataView(source.buffer, source.byteOffset, source.byteLength);
|
|
76
|
+
const output = new Uint8Array(outputBytes);
|
|
77
|
+
const result = new DataView(output.buffer);
|
|
78
|
+
for (let vertex = 0; vertex < outputCount; vertex++) {
|
|
79
|
+
let sum = 0;
|
|
80
|
+
let firstSource = -1;
|
|
81
|
+
let contributors = 0;
|
|
82
|
+
for (let slot = 0; slot < 3; slot++) {
|
|
83
|
+
const weight = sourceVertexWeights[vertex * 3 + slot];
|
|
84
|
+
const index = sourceVertexIndices[vertex * 3 + slot];
|
|
85
|
+
if (!Number.isFinite(weight) ||
|
|
86
|
+
weight < 0 ||
|
|
87
|
+
weight > 1 ||
|
|
88
|
+
(weight > 0 && (!Number.isSafeInteger(index) || index < 0 || index >= sourceCount))) {
|
|
89
|
+
throw new RangeError('Invalid contributing source index or interpolation weight');
|
|
90
|
+
}
|
|
91
|
+
if (weight > 0) {
|
|
92
|
+
contributors++;
|
|
93
|
+
if (firstSource < 0)
|
|
94
|
+
firstSource = index;
|
|
95
|
+
}
|
|
96
|
+
sum += weight;
|
|
97
|
+
}
|
|
98
|
+
if (firstSource < 0 || Math.abs(sum - 1) > 1e-10) {
|
|
99
|
+
throw new RangeError('Interpolation weights must sum to one');
|
|
100
|
+
}
|
|
101
|
+
output.set(source.subarray(firstSource * byteStride, (firstSource + 1) * byteStride), vertex * byteStride);
|
|
102
|
+
for (const attribute of attributes) {
|
|
103
|
+
for (let component = 0; component < attribute.size; component++) {
|
|
104
|
+
const offset = attribute.byteOffset + component * BYTE_SIZES[attribute.type];
|
|
105
|
+
const policy = typeof attribute.interpolation === 'string'
|
|
106
|
+
? attribute.interpolation
|
|
107
|
+
: attribute.interpolation[component];
|
|
108
|
+
const firstValue = readComponent(input, firstSource * byteStride + offset, attribute.type, littleEndian);
|
|
109
|
+
let value = 0;
|
|
110
|
+
for (let slot = 0; slot < 3; slot++) {
|
|
111
|
+
const weight = sourceVertexWeights[vertex * 3 + slot];
|
|
112
|
+
if (weight === 0)
|
|
113
|
+
continue;
|
|
114
|
+
const sourceValue = readComponent(input, sourceVertexIndices[vertex * 3 + slot] * byteStride + offset, attribute.type, littleEndian);
|
|
115
|
+
if (!Number.isFinite(sourceValue))
|
|
116
|
+
throw new RangeError('Packed attributes must be finite');
|
|
117
|
+
if (policy === 'flat' && sourceValue !== firstValue) {
|
|
118
|
+
throw new RangeError('Flat attribute contributors must agree');
|
|
119
|
+
}
|
|
120
|
+
value += sourceValue * weight;
|
|
121
|
+
}
|
|
122
|
+
if (policy === 'linear') {
|
|
123
|
+
if (!Number.isFinite(value))
|
|
124
|
+
throw new RangeError('Interpolated attributes must be finite');
|
|
125
|
+
// Identity provenance preserves every original encoded bit, including signed zero.
|
|
126
|
+
if (contributors !== 1 || sum !== 1) {
|
|
127
|
+
writeComponent(result, vertex * byteStride + offset, attribute.type, value, littleEndian);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return output;
|
|
134
|
+
}
|
|
135
|
+
/** Reject implicit or unknown interpolation semantics. */
|
|
136
|
+
function validateInterpolation(interpolation) {
|
|
137
|
+
if (interpolation !== 'linear' && interpolation !== 'flat') {
|
|
138
|
+
throw new RangeError('Expected linear or flat interpolation');
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/** Read an encoded scalar relative to the source view, including its byte offset. */
|
|
142
|
+
function readComponent(view, offset, type, littleEndian) {
|
|
143
|
+
switch (type) {
|
|
144
|
+
case 'int8':
|
|
145
|
+
return view.getInt8(offset);
|
|
146
|
+
case 'uint8':
|
|
147
|
+
return view.getUint8(offset);
|
|
148
|
+
case 'int16':
|
|
149
|
+
return view.getInt16(offset, littleEndian);
|
|
150
|
+
case 'uint16':
|
|
151
|
+
return view.getUint16(offset, littleEndian);
|
|
152
|
+
case 'int32':
|
|
153
|
+
return view.getInt32(offset, littleEndian);
|
|
154
|
+
case 'uint32':
|
|
155
|
+
return view.getUint32(offset, littleEndian);
|
|
156
|
+
case 'float32':
|
|
157
|
+
return view.getFloat32(offset, littleEndian);
|
|
158
|
+
case 'float64':
|
|
159
|
+
return view.getFloat64(offset, littleEndian);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/** Write one final interpolated scalar, rounding integer encodings consistently. */
|
|
163
|
+
function writeComponent(view, offset, type, value, littleEndian) {
|
|
164
|
+
const integer = Math.round(value);
|
|
165
|
+
switch (type) {
|
|
166
|
+
case 'int8':
|
|
167
|
+
view.setInt8(offset, integer);
|
|
168
|
+
break;
|
|
169
|
+
case 'uint8':
|
|
170
|
+
view.setUint8(offset, integer);
|
|
171
|
+
break;
|
|
172
|
+
case 'int16':
|
|
173
|
+
view.setInt16(offset, integer, littleEndian);
|
|
174
|
+
break;
|
|
175
|
+
case 'uint16':
|
|
176
|
+
view.setUint16(offset, integer, littleEndian);
|
|
177
|
+
break;
|
|
178
|
+
case 'int32':
|
|
179
|
+
view.setInt32(offset, integer, littleEndian);
|
|
180
|
+
break;
|
|
181
|
+
case 'uint32':
|
|
182
|
+
view.setUint32(offset, integer, littleEndian);
|
|
183
|
+
break;
|
|
184
|
+
case 'float32':
|
|
185
|
+
view.setFloat32(offset, value, littleEndian);
|
|
186
|
+
break;
|
|
187
|
+
case 'float64':
|
|
188
|
+
view.setFloat64(offset, value, littleEndian);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=interpolate-packed-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate-packed-attributes.js","sourceRoot":"","sources":["../../src/utils/interpolate-packed-attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Geometry } from "./geometry.js";
|
|
2
|
+
/** Fresh, indexed triangle-list geometry. No input buffers are changed. */
|
|
3
|
+
export declare function transformGeometry(geometry: Geometry, matrix: Readonly<ArrayLike<number>>): Geometry;
|
|
4
|
+
/** Concatenates compatible triangle meshes and offsets vertex indices. */
|
|
5
|
+
export declare function mergeGeometries(geometries: readonly Geometry[]): Geometry;
|
|
6
|
+
export type WeldGeometryOptions = {
|
|
7
|
+
/** Position quantization step; zero means exact matching. */ positionGridSize?: number;
|
|
8
|
+
};
|
|
9
|
+
export type WeldGeometryResult = {
|
|
10
|
+
geometry: Geometry;
|
|
11
|
+
vertexMap: Uint32Array;
|
|
12
|
+
removedVertices: number;
|
|
13
|
+
};
|
|
14
|
+
/** Welds full attribute tuples, preserving UV seams and hard normal edges. */
|
|
15
|
+
export declare function weldGeometry(geometry: Geometry, options?: WeldGeometryOptions): WeldGeometryResult;
|
|
16
|
+
/** Returns triangle numbers with area <= areaEpsilon, in original draw order. */
|
|
17
|
+
export declare function getDegenerateTriangles(geometry: Geometry, areaEpsilon?: number): Uint32Array;
|
|
18
|
+
//# sourceMappingURL=mesh-processing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-processing.d.ts","sourceRoot":"","sources":["../../src/utils/mesh-processing.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,QAAQ,EAAyB,sBAAmB;AASrF,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAClC,QAAQ,CAkFV;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,CA8CzE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,6DAA6D,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACzF,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,8EAA8E;AAC9E,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAmDpB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,SAAI,GAAG,WAAW,CAoCvF"}
|