@loaders.gl/math 3.4.0-alpha.1 → 3.4.0-alpha.3

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.
Files changed (64) hide show
  1. package/dist/es5/geometry/attributes/compute-bounding-box.js +1 -1
  2. package/dist/es5/geometry/attributes/compute-bounding-box.js.map +1 -1
  3. package/dist/es5/geometry/attributes/compute-bounding-sphere.js +0 -1
  4. package/dist/es5/geometry/attributes/compute-tangents.js +0 -1
  5. package/dist/es5/geometry/attributes/compute-vertex-normals.js +1 -1
  6. package/dist/es5/geometry/attributes/compute-vertex-normals.js.map +1 -1
  7. package/dist/es5/geometry/attributes/convert-to-non-indexed.js +1 -1
  8. package/dist/es5/geometry/attributes/convert-to-non-indexed.js.map +1 -1
  9. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js +0 -3
  10. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js.map +1 -1
  11. package/dist/es5/geometry/attributes/normalize.js +0 -1
  12. package/dist/es5/geometry/attributes/normalize.js.map +1 -1
  13. package/dist/es5/geometry/colors/rgb565.js +0 -1
  14. package/dist/es5/geometry/colors/rgb565.js.map +1 -1
  15. package/dist/es5/geometry/compression/attribute-compression.js +0 -19
  16. package/dist/es5/geometry/compression/attribute-compression.js.map +1 -1
  17. package/dist/es5/geometry/constants.js +0 -2
  18. package/dist/es5/geometry/constants.js.map +1 -1
  19. package/dist/es5/geometry/gl/gl-type.js +6 -12
  20. package/dist/es5/geometry/gl/gl-type.js.map +1 -1
  21. package/dist/es5/geometry/is-geometry.js.map +1 -1
  22. package/dist/es5/geometry/iterators/attribute-iterator.js +21 -23
  23. package/dist/es5/geometry/iterators/attribute-iterator.js.map +1 -1
  24. package/dist/es5/geometry/iterators/primitive-iterator.js +33 -42
  25. package/dist/es5/geometry/iterators/primitive-iterator.js.map +1 -1
  26. package/dist/es5/geometry/primitives/modes.js.map +1 -1
  27. package/dist/es5/geometry/typed-arrays/typed-array-utils.js.map +1 -1
  28. package/dist/es5/geometry/utils/assert.js.map +1 -1
  29. package/dist/es5/index.js.map +1 -1
  30. package/dist/es5/utils/assert.js.map +1 -1
  31. package/dist/esm/geometry/attributes/compute-bounding-box.js +0 -1
  32. package/dist/esm/geometry/attributes/compute-bounding-box.js.map +1 -1
  33. package/dist/esm/geometry/attributes/compute-vertex-normals.js.map +1 -1
  34. package/dist/esm/geometry/attributes/convert-to-non-indexed.js +0 -1
  35. package/dist/esm/geometry/attributes/convert-to-non-indexed.js.map +1 -1
  36. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js +0 -3
  37. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js.map +1 -1
  38. package/dist/esm/geometry/attributes/normalize.js +0 -2
  39. package/dist/esm/geometry/attributes/normalize.js.map +1 -1
  40. package/dist/esm/geometry/colors/rgb565.js +0 -2
  41. package/dist/esm/geometry/colors/rgb565.js.map +1 -1
  42. package/dist/esm/geometry/compression/attribute-compression.js +0 -20
  43. package/dist/esm/geometry/compression/attribute-compression.js.map +1 -1
  44. package/dist/esm/geometry/constants.js +0 -4
  45. package/dist/esm/geometry/constants.js.map +1 -1
  46. package/dist/esm/geometry/gl/gl-type.js.map +1 -1
  47. package/dist/esm/geometry/is-geometry.js +0 -1
  48. package/dist/esm/geometry/is-geometry.js.map +1 -1
  49. package/dist/esm/geometry/iterators/attribute-iterator.js +0 -1
  50. package/dist/esm/geometry/iterators/attribute-iterator.js.map +1 -1
  51. package/dist/esm/geometry/iterators/primitive-iterator.js +64 -66
  52. package/dist/esm/geometry/iterators/primitive-iterator.js.map +1 -1
  53. package/dist/esm/geometry/primitives/modes.js +0 -1
  54. package/dist/esm/geometry/primitives/modes.js.map +1 -1
  55. package/dist/esm/geometry/typed-arrays/typed-array-utils.js +0 -1
  56. package/dist/esm/geometry/typed-arrays/typed-array-utils.js.map +1 -1
  57. package/dist/esm/geometry/utils/assert.js +0 -1
  58. package/dist/esm/geometry/utils/assert.js.map +1 -1
  59. package/dist/esm/index.js +0 -6
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/utils/assert.js +0 -1
  62. package/dist/esm/utils/assert.js.map +1 -1
  63. package/dist/geometry/attributes/compute-bounding-sphere.js +1 -1
  64. package/package.json +4 -4
@@ -8,7 +8,7 @@ var _attributeIterator = require("../iterators/attribute-iterator");
8
8
  var _assert = require("../utils/assert");
9
9
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
10
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
11
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
12
12
  function computeBoundingBox() {
13
13
  var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
14
14
  var min = [Number(Infinity), Number(Infinity), Number(Infinity)];
@@ -1 +1 @@
1
- {"version":3,"file":"compute-bounding-box.js","names":["computeBoundingBox","positions","min","Number","Infinity","max","makeAttributeIterator","position","x","y","z","boundingBox","validateBoundingBox","assert","isFinite"],"sources":["../../../../src/geometry/attributes/compute-bounding-box.ts"],"sourcesContent":["import {makeAttributeIterator} from '../iterators/attribute-iterator';\nimport {assert} from '../utils/assert';\n\n/**\n * Type for Bounding Box computing\n */\ntype BoundingBox = {\n min: number[];\n max: number[];\n};\n/**\n * Getting bounding box geometry according to positions parameters\n * @param positions\n * @returns Bounding Box\n */\nexport function computeBoundingBox(positions: any = []) {\n const min = [Number(Infinity), Number(Infinity), Number(Infinity)];\n const max = [-Infinity, -Infinity, -Infinity];\n // @ts-ignore\n for (const position of makeAttributeIterator(positions)) {\n const x = position[0];\n const y = position[1];\n const z = position[2];\n\n if (x < min[0]) min[0] = x;\n if (y < min[1]) min[1] = y;\n if (z < min[2]) min[2] = z;\n\n if (x > max[0]) max[0] = x;\n if (y > max[1]) max[1] = y;\n if (z > max[2]) max[2] = z;\n }\n\n const boundingBox = {min, max};\n validateBoundingBox(boundingBox);\n return boundingBox;\n}\n\nfunction validateBoundingBox(boundingBox: BoundingBox) {\n assert(\n Number.isFinite(boundingBox.min[0]) &&\n Number.isFinite(boundingBox.min[1]) &&\n Number.isFinite(boundingBox.min[2]) &&\n Number.isFinite(boundingBox.max[0]) &&\n Number.isFinite(boundingBox.max[1]) &&\n Number.isFinite(boundingBox.max[2])\n );\n}\n"],"mappings":";;;;;;AAAA;AACA;AAAuC;AAAA;AAAA;AAchC,SAASA,kBAAkB,GAAsB;EAAA,IAArBC,SAAc,uEAAG,EAAE;EACpD,IAAMC,GAAG,GAAG,CAACC,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,CAAC;EAClE,IAAMC,GAAG,GAAG,CAAC,CAACD,QAAQ,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC;EAAC,2CAEvB,IAAAE,wCAAqB,EAACL,SAAS,CAAC;IAAA;EAAA;IAAvD,oDAAyD;MAAA,IAA9CM,QAAQ;MACjB,IAAMC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC;MACrB,IAAME,CAAC,GAAGF,QAAQ,CAAC,CAAC,CAAC;MACrB,IAAMG,CAAC,GAAGH,QAAQ,CAAC,CAAC,CAAC;MAErB,IAAIC,CAAC,GAAGN,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGM,CAAC;MAC1B,IAAIC,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGO,CAAC;MAC1B,IAAIC,CAAC,GAAGR,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGQ,CAAC;MAE1B,IAAIF,CAAC,GAAGH,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGG,CAAC;MAC1B,IAAIC,CAAC,GAAGJ,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGI,CAAC;MAC1B,IAAIC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGK,CAAC;IAC5B;EAAC;IAAA;EAAA;IAAA;EAAA;EAED,IAAMC,WAAW,GAAG;IAACT,GAAG,EAAHA,GAAG;IAAEG,GAAG,EAAHA;EAAG,CAAC;EAC9BO,mBAAmB,CAACD,WAAW,CAAC;EAChC,OAAOA,WAAW;AACpB;AAEA,SAASC,mBAAmB,CAACD,WAAwB,EAAE;EACrD,IAAAE,cAAM,EACJV,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACT,GAAG,CAAC,CAAC,CAAC,CAAC,IACjCC,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACT,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACT,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACN,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACN,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACW,QAAQ,CAACH,WAAW,CAACN,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC;AACH"}
1
+ {"version":3,"file":"compute-bounding-box.js","names":["_attributeIterator","require","_assert","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","computeBoundingBox","positions","arguments","undefined","min","Number","Infinity","max","_iterator","makeAttributeIterator","_step","position","x","y","z","boundingBox","validateBoundingBox","assert","isFinite"],"sources":["../../../../src/geometry/attributes/compute-bounding-box.ts"],"sourcesContent":["import {makeAttributeIterator} from '../iterators/attribute-iterator';\nimport {assert} from '../utils/assert';\n\n/**\n * Type for Bounding Box computing\n */\ntype BoundingBox = {\n min: number[];\n max: number[];\n};\n/**\n * Getting bounding box geometry according to positions parameters\n * @param positions\n * @returns Bounding Box\n */\nexport function computeBoundingBox(positions: any = []) {\n const min = [Number(Infinity), Number(Infinity), Number(Infinity)];\n const max = [-Infinity, -Infinity, -Infinity];\n // @ts-ignore\n for (const position of makeAttributeIterator(positions)) {\n const x = position[0];\n const y = position[1];\n const z = position[2];\n\n if (x < min[0]) min[0] = x;\n if (y < min[1]) min[1] = y;\n if (z < min[2]) min[2] = z;\n\n if (x > max[0]) max[0] = x;\n if (y > max[1]) max[1] = y;\n if (z > max[2]) max[2] = z;\n }\n\n const boundingBox = {min, max};\n validateBoundingBox(boundingBox);\n return boundingBox;\n}\n\nfunction validateBoundingBox(boundingBox: BoundingBox) {\n assert(\n Number.isFinite(boundingBox.min[0]) &&\n Number.isFinite(boundingBox.min[1]) &&\n Number.isFinite(boundingBox.min[2]) &&\n Number.isFinite(boundingBox.max[0]) &&\n Number.isFinite(boundingBox.max[1]) &&\n Number.isFinite(boundingBox.max[2])\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAAuC,SAAAE,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,CAAAwB,MAAA,UAAAxB,EAAA,CAAAwB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA2B,MAAA,SAAA3B,CAAA,qBAAAA,CAAA,sBAAA4B,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA,OAAAf,CAAA,GAAAiB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAT,IAAA,CAAAtB,CAAA,EAAAgC,KAAA,aAAApB,CAAA,iBAAAZ,CAAA,CAAAiC,WAAA,EAAArB,CAAA,GAAAZ,CAAA,CAAAiC,WAAA,CAAAC,IAAA,MAAAtB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA8B,IAAA,CAAAnC,CAAA,OAAAY,CAAA,+DAAAwB,IAAA,CAAAxB,CAAA,UAAAgB,iBAAA,CAAA5B,CAAA,EAAA2B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA7B,MAAA,EAAA8B,GAAA,GAAAD,GAAA,CAAA7B,MAAA,WAAAC,CAAA,MAAA8B,IAAA,OAAAlC,KAAA,CAAAiC,GAAA,GAAA7B,CAAA,GAAA6B,GAAA,EAAA7B,CAAA,IAAA8B,IAAA,CAAA9B,CAAA,IAAA4B,GAAA,CAAA5B,CAAA,UAAA8B,IAAA;AAchC,SAASC,kBAAkBA,CAAA,EAAsB;EAAA,IAArBC,SAAc,GAAAC,SAAA,CAAAlC,MAAA,QAAAkC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,EAAE;EACpD,IAAME,GAAG,GAAG,CAACC,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,CAAC;EAClE,IAAMC,GAAG,GAAG,CAAC,CAACD,QAAQ,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC;EAAC,IAAAE,SAAA,GAAAjD,0BAAA,CAEvB,IAAAkD,wCAAqB,EAACR,SAAS,CAAC;IAAAS,KAAA;EAAA;IAAvD,KAAAF,SAAA,CAAArC,CAAA,MAAAuC,KAAA,GAAAF,SAAA,CAAApC,CAAA,IAAAC,IAAA,GAAyD;MAAA,IAA9CsC,QAAQ,GAAAD,KAAA,CAAApC,KAAA;MACjB,IAAMsC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC;MACrB,IAAME,CAAC,GAAGF,QAAQ,CAAC,CAAC,CAAC;MACrB,IAAMG,CAAC,GAAGH,QAAQ,CAAC,CAAC,CAAC;MAErB,IAAIC,CAAC,GAAGR,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGQ,CAAC;MAC1B,IAAIC,CAAC,GAAGT,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGS,CAAC;MAC1B,IAAIC,CAAC,GAAGV,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGU,CAAC;MAE1B,IAAIF,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGK,CAAC;MAC1B,IAAIC,CAAC,GAAGN,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGM,CAAC;MAC1B,IAAIC,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGO,CAAC;IAC5B;EAAC,SAAAjC,GAAA;IAAA2B,SAAA,CAAAjC,CAAA,CAAAM,GAAA;EAAA;IAAA2B,SAAA,CAAA/B,CAAA;EAAA;EAED,IAAMsC,WAAW,GAAG;IAACX,GAAG,EAAHA,GAAG;IAAEG,GAAG,EAAHA;EAAG,CAAC;EAC9BS,mBAAmB,CAACD,WAAW,CAAC;EAChC,OAAOA,WAAW;AACpB;AAEA,SAASC,mBAAmBA,CAACD,WAAwB,EAAE;EACrD,IAAAE,cAAM,EACJZ,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACX,GAAG,CAAC,CAAC,CAAC,CAAC,IACjCC,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACX,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACX,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACa,QAAQ,CAACH,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC;AACH"}
@@ -1,3 +1,2 @@
1
-
2
1
  "use strict";
3
2
  //# sourceMappingURL=compute-bounding-sphere.js.map
@@ -1,3 +1,2 @@
1
-
2
1
  "use strict";
3
2
  //# sourceMappingURL=compute-tangents.js.map
@@ -12,7 +12,7 @@ var _modes = require("../primitives/modes");
12
12
  var _getAttributeFromGeometry = require("./get-attribute-from-geometry");
13
13
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
14
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
15
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
16
  function computeVertexNormals(geometry) {
17
17
  (0, _assert.assert)((0, _modes.getPrimitiveModeType)(geometry.mode) === _constants.GL.TRIANGLES, 'TRIANGLES required');
18
18
  var _getPositions = (0, _getAttributeFromGeometry.getPositions)(geometry),
@@ -1 +1 @@
1
- {"version":3,"file":"compute-vertex-normals.js","names":["computeVertexNormals","geometry","assert","getPrimitiveModeType","mode","GL","TRIANGLES","getPositions","positions","values","normals","Float32Array","length","vectorA","Vector3","vectorB","vectorC","vectorCB","vectorAB","makePrimitiveIterator","primitive","fromArray","i1","i2","i3","subVectors","normal","cross","normalize","primitiveIndex","x","y","z"],"sources":["../../../../src/geometry/attributes/compute-vertex-normals.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {Vector3} from '@math.gl/core';\nimport {GL} from '../constants';\nimport {assert} from '../utils/assert';\nimport {makePrimitiveIterator} from '../iterators/primitive-iterator';\nimport {getPrimitiveModeType} from '../primitives/modes';\nimport {getPositions} from './get-attribute-from-geometry';\n\ntype Geometry = {\n mode: any;\n indices?: {size: number; values: TypedArray};\n attributes?: {};\n};\n/**\n * Computes vertex normals for a geometry\n * @param param0\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport function computeVertexNormals(geometry: Geometry): Float32Array {\n // Only support GL.TRIANGLES, GL.TRIANGLE_STRIP, GL.TRIANGLE_FAN\n assert(getPrimitiveModeType(geometry.mode) === GL.TRIANGLES, 'TRIANGLES required');\n\n const {values: positions} = getPositions(geometry);\n\n const normals = new Float32Array(positions.length);\n\n const vectorA = new Vector3();\n const vectorB = new Vector3();\n const vectorC = new Vector3();\n\n const vectorCB = new Vector3();\n const vectorAB = new Vector3();\n\n for (const primitive of makePrimitiveIterator(geometry)) {\n vectorA.fromArray(positions, primitive.i1 * 3);\n vectorB.fromArray(positions, primitive.i2 * 3 + 3);\n vectorC.fromArray(positions, primitive.i3 * 3 + 6);\n\n vectorCB.subVectors(vectorC, vectorB);\n vectorAB.subVectors(vectorA, vectorB);\n const normal = vectorCB.cross(vectorAB);\n normal.normalize();\n // @ts-ignore\n const {primitiveIndex} = primitive;\n\n normals[primitiveIndex * 9 + 0] = normal.x;\n normals[primitiveIndex * 9 + 1] = normal.y;\n normals[primitiveIndex * 9 + 2] = normal.z;\n\n normals[primitiveIndex * 9 + 3] = normal.x;\n normals[primitiveIndex * 9 + 4] = normal.y;\n normals[primitiveIndex * 9 + 5] = normal.z;\n\n normals[primitiveIndex * 9 + 6] = normal.x;\n normals[primitiveIndex * 9 + 7] = normal.y;\n normals[primitiveIndex * 9 + 8] = normal.z;\n }\n\n return normals;\n}\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAA2D;AAAA;AAAA;AAapD,SAASA,oBAAoB,CAACC,QAAkB,EAAgB;EAErE,IAAAC,cAAM,EAAC,IAAAC,2BAAoB,EAACF,QAAQ,CAACG,IAAI,CAAC,KAAKC,aAAE,CAACC,SAAS,EAAE,oBAAoB,CAAC;EAElF,oBAA4B,IAAAC,sCAAY,EAACN,QAAQ,CAAC;IAAnCO,SAAS,iBAAjBC,MAAM;EAEb,IAAMC,OAAO,GAAG,IAAIC,YAAY,CAACH,SAAS,CAACI,MAAM,CAAC;EAElD,IAAMC,OAAO,GAAG,IAAIC,aAAO,EAAE;EAC7B,IAAMC,OAAO,GAAG,IAAID,aAAO,EAAE;EAC7B,IAAME,OAAO,GAAG,IAAIF,aAAO,EAAE;EAE7B,IAAMG,QAAQ,GAAG,IAAIH,aAAO,EAAE;EAC9B,IAAMI,QAAQ,GAAG,IAAIJ,aAAO,EAAE;EAAC,2CAEP,IAAAK,wCAAqB,EAAClB,QAAQ,CAAC;IAAA;EAAA;IAAvD,oDAAyD;MAAA,IAA9CmB,SAAS;MAClBP,OAAO,CAACQ,SAAS,CAACb,SAAS,EAAEY,SAAS,CAACE,EAAE,GAAG,CAAC,CAAC;MAC9CP,OAAO,CAACM,SAAS,CAACb,SAAS,EAAEY,SAAS,CAACG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;MAClDP,OAAO,CAACK,SAAS,CAACb,SAAS,EAAEY,SAAS,CAACI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;MAElDP,QAAQ,CAACQ,UAAU,CAACT,OAAO,EAAED,OAAO,CAAC;MACrCG,QAAQ,CAACO,UAAU,CAACZ,OAAO,EAAEE,OAAO,CAAC;MACrC,IAAMW,MAAM,GAAGT,QAAQ,CAACU,KAAK,CAACT,QAAQ,CAAC;MACvCQ,MAAM,CAACE,SAAS,EAAE;MAElB,IAAOC,cAAc,GAAIT,SAAS,CAA3BS,cAAc;MAErBnB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;MAC1CpB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;MAC1CrB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;MAE1CtB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;MAC1CpB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;MAC1CrB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;MAE1CtB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;MAC1CpB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;MAC1CrB,OAAO,CAACmB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;IAC5C;EAAC;IAAA;EAAA;IAAA;EAAA;EAED,OAAOtB,OAAO;AAChB"}
1
+ {"version":3,"file":"compute-vertex-normals.js","names":["_core","require","_constants","_assert","_primitiveIterator","_modes","_getAttributeFromGeometry","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","computeVertexNormals","geometry","assert","getPrimitiveModeType","mode","GL","TRIANGLES","_getPositions","getPositions","positions","values","normals","Float32Array","vectorA","Vector3","vectorB","vectorC","vectorCB","vectorAB","_iterator","makePrimitiveIterator","_step","primitive","fromArray","i1","i2","i3","subVectors","normal","cross","normalize","primitiveIndex","x","y","z"],"sources":["../../../../src/geometry/attributes/compute-vertex-normals.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {Vector3} from '@math.gl/core';\nimport {GL} from '../constants';\nimport {assert} from '../utils/assert';\nimport {makePrimitiveIterator} from '../iterators/primitive-iterator';\nimport {getPrimitiveModeType} from '../primitives/modes';\nimport {getPositions} from './get-attribute-from-geometry';\n\ntype Geometry = {\n mode: any;\n indices?: {size: number; values: TypedArray};\n attributes?: {};\n};\n/**\n * Computes vertex normals for a geometry\n * @param param0\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport function computeVertexNormals(geometry: Geometry): Float32Array {\n // Only support GL.TRIANGLES, GL.TRIANGLE_STRIP, GL.TRIANGLE_FAN\n assert(getPrimitiveModeType(geometry.mode) === GL.TRIANGLES, 'TRIANGLES required');\n\n const {values: positions} = getPositions(geometry);\n\n const normals = new Float32Array(positions.length);\n\n const vectorA = new Vector3();\n const vectorB = new Vector3();\n const vectorC = new Vector3();\n\n const vectorCB = new Vector3();\n const vectorAB = new Vector3();\n\n for (const primitive of makePrimitiveIterator(geometry)) {\n vectorA.fromArray(positions, primitive.i1 * 3);\n vectorB.fromArray(positions, primitive.i2 * 3 + 3);\n vectorC.fromArray(positions, primitive.i3 * 3 + 6);\n\n vectorCB.subVectors(vectorC, vectorB);\n vectorAB.subVectors(vectorA, vectorB);\n const normal = vectorCB.cross(vectorAB);\n normal.normalize();\n // @ts-ignore\n const {primitiveIndex} = primitive;\n\n normals[primitiveIndex * 9 + 0] = normal.x;\n normals[primitiveIndex * 9 + 1] = normal.y;\n normals[primitiveIndex * 9 + 2] = normal.z;\n\n normals[primitiveIndex * 9 + 3] = normal.x;\n normals[primitiveIndex * 9 + 4] = normal.y;\n normals[primitiveIndex * 9 + 5] = normal.z;\n\n normals[primitiveIndex * 9 + 6] = normal.x;\n normals[primitiveIndex * 9 + 7] = normal.y;\n normals[primitiveIndex * 9 + 8] = normal.z;\n }\n\n return normals;\n}\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.convertBuffersToNonIndexed = convertBuffersToNonIndexed;
7
7
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
8
8
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
10
  function convertBuffersToNonIndexed(_ref) {
11
11
  var indices = _ref.indices,
12
12
  attributes = _ref.attributes;
@@ -1 +1 @@
1
- {"version":3,"file":"convert-to-non-indexed.js","names":["convertBuffersToNonIndexed","indices","attributes","geometry2","BufferGeometry","name","attribute","array","itemSize","array2","constructor","length","index","index2","i","l","j","addAttribute","BufferAttribute","groups","group","addGroup","start","count","materialIndex"],"sources":["../../../../src/geometry/attributes/convert-to-non-indexed.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/**\n * Converts indices of geometry.\n *\n * @param param0\n * @returns no indexed geometry\n */\nexport function convertBuffersToNonIndexed({indices, attributes}): any {\n const geometry2 = new BufferGeometry();\n\n for (const name in attributes) {\n const attribute = attributes[name];\n\n const array = attribute.array;\n const itemSize = attribute.itemSize;\n\n const array2 = new array.constructor(indices.length * itemSize);\n let index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n index = indices[i] * itemSize;\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n geometry2.addAttribute(name, new BufferAttribute(array2, itemSize));\n }\n\n for (const group of this.groups) {\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n}\n"],"mappings":";;;;;;;;;AAQO,SAASA,0BAA0B,OAA6B;EAAA,IAA3BC,OAAO,QAAPA,OAAO;IAAEC,UAAU,QAAVA,UAAU;EAC7D,IAAMC,SAAS,GAAG,IAAIC,cAAc,EAAE;EAEtC,KAAK,IAAMC,IAAI,IAAIH,UAAU,EAAE;IAC7B,IAAMI,SAAS,GAAGJ,UAAU,CAACG,IAAI,CAAC;IAElC,IAAME,KAAK,GAAGD,SAAS,CAACC,KAAK;IAC7B,IAAMC,QAAQ,GAAGF,SAAS,CAACE,QAAQ;IAEnC,IAAMC,MAAM,GAAG,IAAIF,KAAK,CAACG,WAAW,CAACT,OAAO,CAACU,MAAM,GAAGH,QAAQ,CAAC;IAC/D,IAAII,KAAK,GAAG,CAAC;MACXC,MAAM,GAAG,CAAC;IAEZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGd,OAAO,CAACU,MAAM,EAAEG,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MAC9CF,KAAK,GAAGX,OAAO,CAACa,CAAC,CAAC,GAAGN,QAAQ;MAC7B,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,QAAQ,EAAEQ,CAAC,EAAE,EAAE;QACjCP,MAAM,CAACI,MAAM,EAAE,CAAC,GAAGN,KAAK,CAACK,KAAK,EAAE,CAAC;MACnC;IACF;IACAT,SAAS,CAACc,YAAY,CAACZ,IAAI,EAAE,IAAIa,eAAe,CAACT,MAAM,EAAED,QAAQ,CAAC,CAAC;EACrE;EAAC,2CAEmB,IAAI,CAACW,MAAM;IAAA;EAAA;IAA/B,oDAAiC;MAAA,IAAtBC,KAAK;MACdjB,SAAS,CAACkB,QAAQ,CAACD,KAAK,CAACE,KAAK,EAAEF,KAAK,CAACG,KAAK,EAAEH,KAAK,CAACI,aAAa,CAAC;IACnE;EAAC;IAAA;EAAA;IAAA;EAAA;EAED,OAAOrB,SAAS;AAClB"}
1
+ {"version":3,"file":"convert-to-non-indexed.js","names":["convertBuffersToNonIndexed","_ref","indices","attributes","geometry2","BufferGeometry","name","attribute","array","itemSize","array2","constructor","length","index","index2","i","l","j","addAttribute","BufferAttribute","_iterator","_createForOfIteratorHelper","groups","_step","s","n","done","group","value","addGroup","start","count","materialIndex","err","e","f"],"sources":["../../../../src/geometry/attributes/convert-to-non-indexed.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/**\n * Converts indices of geometry.\n *\n * @param param0\n * @returns no indexed geometry\n */\nexport function convertBuffersToNonIndexed({indices, attributes}): any {\n const geometry2 = new BufferGeometry();\n\n for (const name in attributes) {\n const attribute = attributes[name];\n\n const array = attribute.array;\n const itemSize = attribute.itemSize;\n\n const array2 = new array.constructor(indices.length * itemSize);\n let index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n index = indices[i] * itemSize;\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n geometry2.addAttribute(name, new BufferAttribute(array2, itemSize));\n }\n\n for (const group of this.groups) {\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n}\n"],"mappings":";;;;;;;;;AAQO,SAASA,0BAA0BA,CAAAC,IAAA,EAA6B;EAAA,IAA3BC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;EAC7D,IAAMC,SAAS,GAAG,IAAIC,cAAc,EAAE;EAEtC,KAAK,IAAMC,IAAI,IAAIH,UAAU,EAAE;IAC7B,IAAMI,SAAS,GAAGJ,UAAU,CAACG,IAAI,CAAC;IAElC,IAAME,KAAK,GAAGD,SAAS,CAACC,KAAK;IAC7B,IAAMC,QAAQ,GAAGF,SAAS,CAACE,QAAQ;IAEnC,IAAMC,MAAM,GAAG,IAAIF,KAAK,CAACG,WAAW,CAACT,OAAO,CAACU,MAAM,GAAGH,QAAQ,CAAC;IAC/D,IAAII,KAAK,GAAG,CAAC;MACXC,MAAM,GAAG,CAAC;IAEZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGd,OAAO,CAACU,MAAM,EAAEG,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MAC9CF,KAAK,GAAGX,OAAO,CAACa,CAAC,CAAC,GAAGN,QAAQ;MAC7B,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,QAAQ,EAAEQ,CAAC,EAAE,EAAE;QACjCP,MAAM,CAACI,MAAM,EAAE,CAAC,GAAGN,KAAK,CAACK,KAAK,EAAE,CAAC;MACnC;IACF;IACAT,SAAS,CAACc,YAAY,CAACZ,IAAI,EAAE,IAAIa,eAAe,CAACT,MAAM,EAAED,QAAQ,CAAC,CAAC;EACrE;EAAC,IAAAW,SAAA,GAAAC,0BAAA,CAEmB,IAAI,CAACC,MAAM;IAAAC,KAAA;EAAA;IAA/B,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAiC;MAAA,IAAtBC,KAAK,GAAAJ,KAAA,CAAAK,KAAA;MACdxB,SAAS,CAACyB,QAAQ,CAACF,KAAK,CAACG,KAAK,EAAEH,KAAK,CAACI,KAAK,EAAEJ,KAAK,CAACK,aAAa,CAAC;IACnE;EAAC,SAAAC,GAAA;IAAAb,SAAA,CAAAc,CAAA,CAAAD,GAAA;EAAA;IAAAb,SAAA,CAAAe,CAAA;EAAA;EAED,OAAO/B,SAAS;AAClB"}
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getPositions = getPositions;
8
8
  var _isGeometry = _interopRequireDefault(require("../is-geometry"));
9
9
  var _assert = require("../utils/assert");
10
-
11
10
  function getPositions(geometry) {
12
11
  if ((0, _isGeometry.default)(geometry)) {
13
12
  var attributes = geometry.attributes;
@@ -15,14 +14,12 @@ function getPositions(geometry) {
15
14
  (0, _assert.assert)(position);
16
15
  return position;
17
16
  }
18
-
19
17
  if (ArrayBuffer.isView(geometry)) {
20
18
  return {
21
19
  values: geometry,
22
20
  size: 3
23
21
  };
24
22
  }
25
-
26
23
  if (geometry) {
27
24
  (0, _assert.assert)(geometry.values);
28
25
  return geometry;
@@ -1 +1 @@
1
- {"version":3,"file":"get-attribute-from-geometry.js","names":["getPositions","geometry","isGeometry","attributes","position","POSITION","positions","assert","ArrayBuffer","isView","values","size"],"sources":["../../../../src/geometry/attributes/get-attribute-from-geometry.ts"],"sourcesContent":["import isGeometry from '../is-geometry';\nimport {assert} from '../utils/assert';\n\n/**\n * analyze positions of geometry\n *\n * @param geometry\n * @returns Position| New geometry |assert\n */\n\nexport function getPositions(geometry: any) {\n // If geometry, extract positions\n if (isGeometry(geometry)) {\n const {attributes} = geometry;\n const position = attributes.POSITION || attributes.positions;\n assert(position);\n return position;\n }\n\n // If arraybuffer, assume 3 components\n if (ArrayBuffer.isView(geometry)) {\n return {values: geometry, size: 3};\n }\n\n // Else assume accessor object\n if (geometry) {\n assert(geometry.values);\n return geometry;\n }\n\n return assert(false);\n}\n"],"mappings":";;;;;;;AAAA;AACA;;AASO,SAASA,YAAY,CAACC,QAAa,EAAE;EAE1C,IAAI,IAAAC,mBAAU,EAACD,QAAQ,CAAC,EAAE;IACxB,IAAOE,UAAU,GAAIF,QAAQ,CAAtBE,UAAU;IACjB,IAAMC,QAAQ,GAAGD,UAAU,CAACE,QAAQ,IAAIF,UAAU,CAACG,SAAS;IAC5D,IAAAC,cAAM,EAACH,QAAQ,CAAC;IAChB,OAAOA,QAAQ;EACjB;;EAGA,IAAII,WAAW,CAACC,MAAM,CAACR,QAAQ,CAAC,EAAE;IAChC,OAAO;MAACS,MAAM,EAAET,QAAQ;MAAEU,IAAI,EAAE;IAAC,CAAC;EACpC;;EAGA,IAAIV,QAAQ,EAAE;IACZ,IAAAM,cAAM,EAACN,QAAQ,CAACS,MAAM,CAAC;IACvB,OAAOT,QAAQ;EACjB;EAEA,OAAO,IAAAM,cAAM,EAAC,KAAK,CAAC;AACtB"}
1
+ {"version":3,"file":"get-attribute-from-geometry.js","names":["_isGeometry","_interopRequireDefault","require","_assert","getPositions","geometry","isGeometry","attributes","position","POSITION","positions","assert","ArrayBuffer","isView","values","size"],"sources":["../../../../src/geometry/attributes/get-attribute-from-geometry.ts"],"sourcesContent":["import isGeometry from '../is-geometry';\nimport {assert} from '../utils/assert';\n\n/**\n * analyze positions of geometry\n *\n * @param geometry\n * @returns Position| New geometry |assert\n */\n\nexport function getPositions(geometry: any) {\n // If geometry, extract positions\n if (isGeometry(geometry)) {\n const {attributes} = geometry;\n const position = attributes.POSITION || attributes.positions;\n assert(position);\n return position;\n }\n\n // If arraybuffer, assume 3 components\n if (ArrayBuffer.isView(geometry)) {\n return {values: geometry, size: 3};\n }\n\n // Else assume accessor object\n if (geometry) {\n assert(geometry.values);\n return geometry;\n }\n\n return assert(false);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AASO,SAASE,YAAYA,CAACC,QAAa,EAAE;EAE1C,IAAI,IAAAC,mBAAU,EAACD,QAAQ,CAAC,EAAE;IACxB,IAAOE,UAAU,GAAIF,QAAQ,CAAtBE,UAAU;IACjB,IAAMC,QAAQ,GAAGD,UAAU,CAACE,QAAQ,IAAIF,UAAU,CAACG,SAAS;IAC5D,IAAAC,cAAM,EAACH,QAAQ,CAAC;IAChB,OAAOA,QAAQ;EACjB;EAGA,IAAII,WAAW,CAACC,MAAM,CAACR,QAAQ,CAAC,EAAE;IAChC,OAAO;MAACS,MAAM,EAAET,QAAQ;MAAEU,IAAI,EAAE;IAAC,CAAC;EACpC;EAGA,IAAIV,QAAQ,EAAE;IACZ,IAAAM,cAAM,EAACN,QAAQ,CAACS,MAAM,CAAC;IACvB,OAAOT,QAAQ;EACjB;EAEA,OAAO,IAAAM,cAAM,EAAC,KAAK,CAAC;AACtB"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.normalize = normalize;
7
-
8
7
  function normalize() {
9
8
  var normals = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10
9
  var vector = arguments.length > 1 ? arguments[1] : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","names":["normalize","normals","vector","attributes","normal","i","il","count","x","getX","y","getY","z","getZ","setXYZ"],"sources":["../../../../src/geometry/attributes/normalize.ts"],"sourcesContent":["/* eslint-disable */\nimport {Vector3} from '@math.gl/core';\n\n/**\n * Setting X, Y, Z for Vector\n * @param normals\n * @param vector\n */\nexport function normalize(normals: any = {}, vector: Vector3) {\n //@ts-ignore\n normals = this.attributes.normal;\n for (let i = 0, il = normals.count; i < il; i++) {\n vector.x = normals.getX(i);\n vector.y = normals.getY(i);\n vector.z = normals.getZ(i);\n vector.normalize();\n normals.setXYZ(i, vector.x, vector.y, vector.z);\n }\n}\n"],"mappings":";;;;;;;AAQO,SAASA,SAAS,GAAqC;EAAA,IAApCC,OAAY,uEAAG,CAAC,CAAC;EAAA,IAAEC,MAAe;EAE1DD,OAAO,GAAG,IAAI,CAACE,UAAU,CAACC,MAAM;EAChC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,EAAE,GAAGL,OAAO,CAACM,KAAK,EAAEF,CAAC,GAAGC,EAAE,EAAED,CAAC,EAAE,EAAE;IAC/CH,MAAM,CAACM,CAAC,GAAGP,OAAO,CAACQ,IAAI,CAACJ,CAAC,CAAC;IAC1BH,MAAM,CAACQ,CAAC,GAAGT,OAAO,CAACU,IAAI,CAACN,CAAC,CAAC;IAC1BH,MAAM,CAACU,CAAC,GAAGX,OAAO,CAACY,IAAI,CAACR,CAAC,CAAC;IAC1BH,MAAM,CAACF,SAAS,EAAE;IAClBC,OAAO,CAACa,MAAM,CAACT,CAAC,EAAEH,MAAM,CAACM,CAAC,EAAEN,MAAM,CAACQ,CAAC,EAAER,MAAM,CAACU,CAAC,CAAC;EACjD;AACF"}
1
+ {"version":3,"file":"normalize.js","names":["normalize","normals","arguments","length","undefined","vector","attributes","normal","i","il","count","x","getX","y","getY","z","getZ","setXYZ"],"sources":["../../../../src/geometry/attributes/normalize.ts"],"sourcesContent":["/* eslint-disable */\nimport {Vector3} from '@math.gl/core';\n\n/**\n * Setting X, Y, Z for Vector\n * @param normals\n * @param vector\n */\nexport function normalize(normals: any = {}, vector: Vector3) {\n //@ts-ignore\n normals = this.attributes.normal;\n for (let i = 0, il = normals.count; i < il; i++) {\n vector.x = normals.getX(i);\n vector.y = normals.getY(i);\n vector.z = normals.getZ(i);\n vector.normalize();\n normals.setXYZ(i, vector.x, vector.y, vector.z);\n }\n}\n"],"mappings":";;;;;;AAQO,SAASA,SAASA,CAAA,EAAqC;EAAA,IAApCC,OAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEG,MAAe,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAE1DH,OAAO,GAAG,IAAI,CAACK,UAAU,CAACC,MAAM;EAChC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,EAAE,GAAGR,OAAO,CAACS,KAAK,EAAEF,CAAC,GAAGC,EAAE,EAAED,CAAC,EAAE,EAAE;IAC/CH,MAAM,CAACM,CAAC,GAAGV,OAAO,CAACW,IAAI,CAACJ,CAAC,CAAC;IAC1BH,MAAM,CAACQ,CAAC,GAAGZ,OAAO,CAACa,IAAI,CAACN,CAAC,CAAC;IAC1BH,MAAM,CAACU,CAAC,GAAGd,OAAO,CAACe,IAAI,CAACR,CAAC,CAAC;IAC1BH,MAAM,CAACL,SAAS,EAAE;IAClBC,OAAO,CAACgB,MAAM,CAACT,CAAC,EAAEH,MAAM,CAACM,CAAC,EAAEN,MAAM,CAACQ,CAAC,EAAER,MAAM,CAACU,CAAC,CAAC;EACjD;AACF"}
@@ -15,7 +15,6 @@ function decodeRGB565(rgb565) {
15
15
  target[2] = b5 << 3;
16
16
  return target;
17
17
  }
18
-
19
18
  function encodeRGB565(rgb) {
20
19
  var r5 = Math.floor(rgb[0] / 8) + 4;
21
20
  var g6 = Math.floor(rgb[1] / 4) + 2;
@@ -1 +1 @@
1
- {"version":3,"file":"rgb565.js","names":["decodeRGB565","rgb565","target","r5","g6","b5","encodeRGB565","rgb","Math","floor"],"sources":["../../../../src/geometry/colors/rgb565.ts"],"sourcesContent":["/**\n * Decode color values\n * @param rgb565\n * @param target\n * @returns target\n */\nexport function decodeRGB565(rgb565: number, target: number[] = [0, 0, 0]): number[] {\n const r5 = (rgb565 >> 11) & 31;\n const g6 = (rgb565 >> 5) & 63;\n const b5 = rgb565 & 31;\n\n target[0] = r5 << 3;\n target[1] = g6 << 2;\n target[2] = b5 << 3;\n\n return target;\n}\n\n/**\n * Encode color values\n * @param rgb\n * @returns color\n */\nexport function encodeRGB565(rgb: number[]): number {\n const r5 = Math.floor(rgb[0] / 8) + 4;\n const g6 = Math.floor(rgb[1] / 4) + 2;\n const b5 = Math.floor(rgb[2] / 8) + 4;\n return r5 + (g6 << 5) + (b5 << 11);\n}\n"],"mappings":";;;;;;;AAMO,SAASA,YAAY,CAACC,MAAc,EAA0C;EAAA,IAAxCC,MAAgB,uEAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACvE,IAAMC,EAAE,GAAIF,MAAM,IAAI,EAAE,GAAI,EAAE;EAC9B,IAAMG,EAAE,GAAIH,MAAM,IAAI,CAAC,GAAI,EAAE;EAC7B,IAAMI,EAAE,GAAGJ,MAAM,GAAG,EAAE;EAEtBC,MAAM,CAAC,CAAC,CAAC,GAAGC,EAAE,IAAI,CAAC;EACnBD,MAAM,CAAC,CAAC,CAAC,GAAGE,EAAE,IAAI,CAAC;EACnBF,MAAM,CAAC,CAAC,CAAC,GAAGG,EAAE,IAAI,CAAC;EAEnB,OAAOH,MAAM;AACf;;AAOO,SAASI,YAAY,CAACC,GAAa,EAAU;EAClD,IAAMJ,EAAE,GAAGK,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,IAAMH,EAAE,GAAGI,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,IAAMF,EAAE,GAAGG,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,OAAOJ,EAAE,IAAIC,EAAE,IAAI,CAAC,CAAC,IAAIC,EAAE,IAAI,EAAE,CAAC;AACpC"}
1
+ {"version":3,"file":"rgb565.js","names":["decodeRGB565","rgb565","target","arguments","length","undefined","r5","g6","b5","encodeRGB565","rgb","Math","floor"],"sources":["../../../../src/geometry/colors/rgb565.ts"],"sourcesContent":["/**\n * Decode color values\n * @param rgb565\n * @param target\n * @returns target\n */\nexport function decodeRGB565(rgb565: number, target: number[] = [0, 0, 0]): number[] {\n const r5 = (rgb565 >> 11) & 31;\n const g6 = (rgb565 >> 5) & 63;\n const b5 = rgb565 & 31;\n\n target[0] = r5 << 3;\n target[1] = g6 << 2;\n target[2] = b5 << 3;\n\n return target;\n}\n\n/**\n * Encode color values\n * @param rgb\n * @returns color\n */\nexport function encodeRGB565(rgb: number[]): number {\n const r5 = Math.floor(rgb[0] / 8) + 4;\n const g6 = Math.floor(rgb[1] / 4) + 2;\n const b5 = Math.floor(rgb[2] / 8) + 4;\n return r5 + (g6 << 5) + (b5 << 11);\n}\n"],"mappings":";;;;;;;AAMO,SAASA,YAAYA,CAACC,MAAc,EAA0C;EAAA,IAAxCC,MAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACvE,IAAMG,EAAE,GAAIL,MAAM,IAAI,EAAE,GAAI,EAAE;EAC9B,IAAMM,EAAE,GAAIN,MAAM,IAAI,CAAC,GAAI,EAAE;EAC7B,IAAMO,EAAE,GAAGP,MAAM,GAAG,EAAE;EAEtBC,MAAM,CAAC,CAAC,CAAC,GAAGI,EAAE,IAAI,CAAC;EACnBJ,MAAM,CAAC,CAAC,CAAC,GAAGK,EAAE,IAAI,CAAC;EACnBL,MAAM,CAAC,CAAC,CAAC,GAAGM,EAAE,IAAI,CAAC;EAEnB,OAAON,MAAM;AACf;AAOO,SAASO,YAAYA,CAACC,GAAa,EAAU;EAClD,IAAMJ,EAAE,GAAGK,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,IAAMH,EAAE,GAAGI,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,IAAMF,EAAE,GAAGG,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,OAAOJ,EAAE,IAAIC,EAAE,IAAI,CAAC,CAAC,IAAIC,EAAE,IAAI,EAAE,CAAC;AACpC"}
@@ -19,7 +19,6 @@ exports.octUnpack = octUnpack;
19
19
  exports.zigZagDeltaDecode = zigZagDeltaDecode;
20
20
  var _core = require("@math.gl/core");
21
21
  var _assert = require("../utils/assert");
22
-
23
22
  var RIGHT_SHIFT = 1.0 / 256.0;
24
23
  var LEFT_SHIFT = 256.0;
25
24
  var scratchVector2 = new _core.Vector2();
@@ -27,26 +26,21 @@ var scratchVector3 = new _core.Vector3();
27
26
  var scratchEncodeVector2 = new _core.Vector2();
28
27
  var octEncodeScratch = new _core.Vector2();
29
28
  var uint8ForceArray = new Uint8Array(1);
30
-
31
29
  function forceUint8(value) {
32
30
  uint8ForceArray[0] = value;
33
31
  return uint8ForceArray[0];
34
32
  }
35
-
36
33
  function fromSNorm(value) {
37
34
  var rangeMaximum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255;
38
35
  return (0, _core.clamp)(value, 0.0, rangeMaximum) / rangeMaximum * 2.0 - 1.0;
39
36
  }
40
-
41
37
  function toSNorm(value) {
42
38
  var rangeMaximum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255;
43
39
  return Math.round(((0, _core.clamp)(value, -1.0, 1.0) * 0.5 + 0.5) * rangeMaximum);
44
40
  }
45
-
46
41
  function signNotZero(value) {
47
42
  return value < 0.0 ? -1.0 : 1.0;
48
43
  }
49
-
50
44
  function octEncodeInRange(vector, rangeMax, result) {
51
45
  (0, _assert.assert)(vector);
52
46
  (0, _assert.assert)(result);
@@ -64,11 +58,9 @@ function octEncodeInRange(vector, rangeMax, result) {
64
58
  result.y = toSNorm(result.y, rangeMax);
65
59
  return result;
66
60
  }
67
-
68
61
  function octEncode(vector, result) {
69
62
  return octEncodeInRange(vector, 255, result);
70
63
  }
71
-
72
64
  function octEncodeToVector4(vector, result) {
73
65
  octEncodeInRange(vector, 65535, octEncodeScratch);
74
66
  result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);
@@ -77,7 +69,6 @@ function octEncodeToVector4(vector, result) {
77
69
  result.w = forceUint8(octEncodeScratch.y);
78
70
  return result;
79
71
  }
80
-
81
72
  function octDecodeInRange(x, y, rangeMax, result) {
82
73
  (0, _assert.assert)(result);
83
74
  if (x < 0 || x > rangeMax || y < 0 || y > rangeMax) {
@@ -93,11 +84,9 @@ function octDecodeInRange(x, y, rangeMax, result) {
93
84
  }
94
85
  return result.normalize();
95
86
  }
96
-
97
87
  function octDecode(x, y, result) {
98
88
  return octDecodeInRange(x, y, 255, result);
99
89
  }
100
-
101
90
  function octDecodeFromVector4(encoded, result) {
102
91
  (0, _assert.assert)(encoded);
103
92
  (0, _assert.assert)(result);
@@ -112,17 +101,14 @@ function octDecodeFromVector4(encoded, result) {
112
101
  var yOct16 = z * LEFT_SHIFT + w;
113
102
  return octDecodeInRange(xOct16, yOct16, 65535, result);
114
103
  }
115
-
116
104
  function octPackFloat(encoded) {
117
105
  var vector2 = scratchVector2.from(encoded);
118
106
  return 256.0 * vector2.x + vector2.y;
119
107
  }
120
-
121
108
  function octEncodeFloat(vector) {
122
109
  octEncode(vector, scratchEncodeVector2);
123
110
  return octPackFloat(scratchEncodeVector2);
124
111
  }
125
-
126
112
  function octDecodeFloat(value, result) {
127
113
  (0, _assert.assert)(Number.isFinite(value));
128
114
  var temp = value / 256.0;
@@ -130,7 +116,6 @@ function octDecodeFloat(value, result) {
130
116
  var y = (temp - x) * 256.0;
131
117
  return octDecode(x, y, result);
132
118
  }
133
-
134
119
  function octPack(v1, v2, v3, result) {
135
120
  (0, _assert.assert)(v1);
136
121
  (0, _assert.assert)(v2);
@@ -143,7 +128,6 @@ function octPack(v1, v2, v3, result) {
143
128
  result.y = 65536.0 * encoded3.y + encoded2;
144
129
  return result;
145
130
  }
146
-
147
131
  function octUnpack(packed, v1, v2, v3) {
148
132
  var temp = packed.x / 65536.0;
149
133
  var x = Math.floor(temp);
@@ -155,13 +139,11 @@ function octUnpack(packed, v1, v2, v3) {
155
139
  octDecodeFloat(encodedFloat2, v2);
156
140
  octDecode(x, y, v3);
157
141
  }
158
-
159
142
  function compressTextureCoordinates(textureCoordinates) {
160
143
  var x = textureCoordinates.x * 4095.0 | 0;
161
144
  var y = textureCoordinates.y * 4095.0 | 0;
162
145
  return 4096.0 * x + y;
163
146
  }
164
-
165
147
  function decompressTextureCoordinates(compressed, result) {
166
148
  var temp = compressed / 4096.0;
167
149
  var xZeroTo4095 = Math.floor(temp);
@@ -169,7 +151,6 @@ function decompressTextureCoordinates(compressed, result) {
169
151
  result.y = (compressed - xZeroTo4095 * 4096) / 4095;
170
152
  return result;
171
153
  }
172
-
173
154
  function zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer) {
174
155
  (0, _assert.assert)(uBuffer);
175
156
  (0, _assert.assert)(vBuffer);
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-compression.js","names":["RIGHT_SHIFT","LEFT_SHIFT","scratchVector2","Vector2","scratchVector3","Vector3","scratchEncodeVector2","octEncodeScratch","uint8ForceArray","Uint8Array","forceUint8","value","fromSNorm","rangeMaximum","clamp","toSNorm","Math","round","signNotZero","octEncodeInRange","vector","rangeMax","result","assert","vector3","from","abs","magnitudeSquared","_MathUtils","EPSILON6","x","y","z","octEncode","octEncodeToVector4","w","octDecodeInRange","Error","oldVX","normalize","octDecode","octDecodeFromVector4","encoded","xOct16","yOct16","octPackFloat","vector2","octEncodeFloat","octDecodeFloat","Number","isFinite","temp","floor","octPack","v1","v2","v3","encoded1","encoded2","encoded3","octUnpack","packed","encodedFloat1","encodedFloat2","compressTextureCoordinates","textureCoordinates","decompressTextureCoordinates","compressed","xZeroTo4095","zigZagDeltaDecode","uBuffer","vBuffer","heightBuffer","length","zigZagDecode","u","v","height","i"],"sources":["../../../../src/geometry/compression/attribute-compression.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// Attribute compression and decompression functions.\n\nimport {Vector2, Vector3, clamp, _MathUtils} from '@math.gl/core';\nimport {assert} from '../utils/assert';\n\ntype Vector4 = {\n x: number;\n y: number;\n z: number;\n w: number;\n};\n\nconst RIGHT_SHIFT = 1.0 / 256.0;\nconst LEFT_SHIFT = 256.0;\n\nconst scratchVector2 = new Vector2();\nconst scratchVector3 = new Vector3();\nconst scratchEncodeVector2 = new Vector2();\nconst octEncodeScratch = new Vector2();\n\nconst uint8ForceArray = new Uint8Array(1);\n\n/**\n * Force a value to Uint8\n *\n * @param value\n * @returns\n */\nfunction forceUint8(value: number): number {\n uint8ForceArray[0] = value;\n return uint8ForceArray[0];\n}\n\n/**\n * Converts a SNORM value in the range [0, rangeMaximum] to a scalar in the range [-1.0, 1.0].\n *\n * @param value SNORM value in the range [0, rangeMaximum]\n * @param [rangeMaximum=255] The maximum value in the SNORM range, 255 by default.\n * @returns Scalar in the range [-1.0, 1.0].\n *\n * @see CesiumMath.toSNorm\n */\nfunction fromSNorm(value: number, rangeMaximum = 255): number {\n return (clamp(value, 0.0, rangeMaximum) / rangeMaximum) * 2.0 - 1.0;\n}\n\n/**\n * Converts a scalar value in the range [-1.0, 1.0] to a SNORM in the range [0, rangeMaximum].\n *\n * @param value The scalar value in the range [-1.0, 1.0]\n * @param [rangeMaximum=255] The maximum value in the mapped range, 255 by default.\n * @returns A SNORM value, where 0 maps to -1.0 and rangeMaximum maps to 1.0.\n *\n * @see CesiumMath.fromSNorm\n */\nfunction toSNorm(value: number, rangeMaximum = 255): number {\n return Math.round((clamp(value, -1.0, 1.0) * 0.5 + 0.5) * rangeMaximum);\n}\n\n/**\n * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative.\n * This is similar to `Math.sign` except that returns 1.0 instead of\n * 0.0 when the input value is 0.0.\n *\n * @param value The value to return the sign of.\n * @returns The sign of value.\n */\nfunction signNotZero(value: number): number {\n return value < 0.0 ? -1.0 : 1.0;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-rangeMax] following the 'oct' encoding.\n *\n * Oct encoding is a compact representation of unit length vectors.\n * The 'oct' encoding is described in \"A Survey of Efficient Representations of Independent Unit Vectors\",\n * Cigolle et al 2014: {@link http://jcgt.org/published/0003/02/01/}\n *\n * @param vector The normalized vector to be compressed into 2 component 'oct' encoding.\n * @param result The 2 component oct-encoded unit length vector.\n * @param rangeMax The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.\n * @returns The 2 component oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octDecodeInRange\n */\nexport function octEncodeInRange(vector: Vector3, rangeMax: number, result: Vector2): Vector2 {\n assert(vector);\n assert(result);\n\n const vector3 = scratchVector3.from(vector);\n\n assert(Math.abs(vector3.magnitudeSquared() - 1.0) <= _MathUtils.EPSILON6);\n\n result.x = vector.x / (Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z));\n result.y = vector.y / (Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z));\n\n if (vector.z < 0) {\n const x = result.x;\n const y = result.y;\n result.x = (1.0 - Math.abs(y)) * signNotZero(x);\n result.y = (1.0 - Math.abs(x)) * signNotZero(y);\n }\n\n result.x = toSNorm(result.x, rangeMax);\n result.y = toSNorm(result.y, rangeMax);\n\n return result;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-255] following the 'oct' encoding.\n *\n * @param vector The normalized vector to be compressed into 2 byte 'oct' encoding.\n * @param result The 2 byte oct-encoded unit length vector.\n * @returns he 2 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octEncodeInRange\n * @see octDecode\n */\nexport function octEncode(vector: Vector3, result: Vector2): Vector2 {\n return octEncodeInRange(vector, 255, result);\n}\n\n/**\n * Encodes a normalized vector into 4-byte vector\n * @param vector The normalized vector to be compressed into 4 byte 'oct' encoding.\n * @param result The 4 byte oct-encoded unit length vector.\n * @returns The 4 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octEncodeInRange\n * @see octDecodeFromVector4\n */\nexport function octEncodeToVector4(vector: Vector3, result: Vector4): Vector4 {\n octEncodeInRange(vector, 65535, octEncodeScratch);\n result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);\n result.y = forceUint8(octEncodeScratch.x);\n result.z = forceUint8(octEncodeScratch.y * RIGHT_SHIFT);\n result.w = forceUint8(octEncodeScratch.y);\n return result;\n}\n\n/**\n * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component vector.\n *\n * @param x The x component of the oct-encoded unit length vector.\n * @param y The y component of the oct-encoded unit length vector.\n * @param rangeMax The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.\n * @param result The decoded and normalized vector\n * @returns The decoded and normalized vector.\n *\n * @exception x and y must be unsigned normalized integers between 0 and rangeMax.\n *\n * @see octEncodeInRange\n */\nexport function octDecodeInRange(x: number, y: number, rangeMax: number, result: Vector3): Vector3 {\n assert(result);\n if (x < 0 || x > rangeMax || y < 0 || y > rangeMax) {\n throw new Error(`x and y must be unsigned normalized integers between 0 and ${rangeMax}`);\n }\n\n result.x = fromSNorm(x, rangeMax);\n result.y = fromSNorm(y, rangeMax);\n result.z = 1.0 - (Math.abs(result.x) + Math.abs(result.y));\n\n if (result.z < 0.0) {\n const oldVX = result.x;\n result.x = (1.0 - Math.abs(result.y)) * signNotZero(oldVX);\n result.y = (1.0 - Math.abs(oldVX)) * signNotZero(result.y);\n }\n\n return result.normalize();\n}\n\n/**\n * Decodes a unit-length vector in 2 byte 'oct' encoding to a normalized 3-component vector.\n *\n * @param x The x component of the oct-encoded unit length vector.\n * @param y The y component of the oct-encoded unit length vector.\n * @param result The decoded and normalized vector.\n * @returns he decoded and normalized vector.\n *\n * @exception x and y must be an unsigned normalized integer between 0 and 255.\n *\n * @see octDecodeInRange\n */\nexport function octDecode(x: number, y: number, result: Vector3): Vector3 {\n return octDecodeInRange(x, y, 255, result);\n}\n\n/**\n * Decodes a unit-length vector in 4 byte 'oct' encoding to a normalized 3-component vector.\n *\n * @param encoded The oct-encoded unit length vector.\n * @param esult The decoded and normalized vector.\n * @returns The decoded and normalized vector.\n *\n * @exception x, y, z, and w must be unsigned normalized integers between 0 and 255.\n *\n * @see octDecodeInRange\n * @see octEncodeToVector4\n */\nexport function octDecodeFromVector4(encoded: Vector4, result: Vector3): Vector3 {\n assert(encoded);\n assert(result);\n const x = encoded.x;\n const y = encoded.y;\n const z = encoded.z;\n const w = encoded.w;\n\n if (x < 0 || x > 255 || y < 0 || y > 255 || z < 0 || z > 255 || w < 0 || w > 255) {\n throw new Error('x, y, z, and w must be unsigned normalized integers between 0 and 255');\n }\n\n const xOct16 = x * LEFT_SHIFT + y;\n const yOct16 = z * LEFT_SHIFT + w;\n return octDecodeInRange(xOct16, yOct16, 65535, result);\n}\n\n/**\n * Packs an oct encoded vector into a single floating-point number.\n *\n * @param encoded The oct encoded vector.\n * @returns The oct encoded vector packed into a single float.\n *\n */\nexport function octPackFloat(encoded: Vector2): number {\n const vector2 = scratchVector2.from(encoded);\n return 256.0 * vector2.x + vector2.y;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-255] following the 'oct' encoding and\n * stores those values in a single float-point number.\n *\n * @param vector The normalized vector to be compressed into 2 byte 'oct' encoding.\n * @returns The 2 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n */\nexport function octEncodeFloat(vector: Vector3): number {\n octEncode(vector, scratchEncodeVector2);\n return octPackFloat(scratchEncodeVector2);\n}\n\n/**\n * Decodes a unit-length vector in 'oct' encoding packed in a floating-point number to a normalized 3-component vector.\n *\n * @param value The oct-encoded unit length vector stored as a single floating-point number.\n * @param result The decoded and normalized vector\n * @returns The decoded and normalized vector.\n *\n */\nexport function octDecodeFloat(value: number, result: Vector3): Vector3 {\n assert(Number.isFinite(value));\n\n const temp = value / 256.0;\n const x = Math.floor(temp);\n const y = (temp - x) * 256.0;\n\n return octDecode(x, y, result);\n}\n\n/**\n * Encodes three normalized vectors into 6 SNORM values in the range of [0-255] following the 'oct' encoding and\n * packs those into two floating-point numbers.\n *\n * @param v1 A normalized vector to be compressed.\n * @param v2 A normalized vector to be compressed.\n * @param v3 A normalized vector to be compressed.\n * @param result The 'oct' encoded vectors packed into two floating-point numbers.\n * @returns The 'oct' encoded vectors packed into two floating-point numbers.\n *\n */\nexport function octPack(v1: Vector3, v2: Vector3, v3: Vector3, result: Vector2): Vector2 {\n assert(v1);\n assert(v2);\n assert(v3);\n assert(result);\n\n const encoded1 = octEncodeFloat(v1);\n const encoded2 = octEncodeFloat(v2);\n\n const encoded3 = octEncode(v3, scratchEncodeVector2);\n result.x = 65536.0 * encoded3.x + encoded1;\n result.y = 65536.0 * encoded3.y + encoded2;\n return result;\n}\n\n/**\n * Decodes three unit-length vectors in 'oct' encoding packed into a floating-point number to a normalized 3-component vector.\n *\n * @param packed The three oct-encoded unit length vectors stored as two floating-point number.\n * @param v1 One decoded and normalized vector.\n * @param v2 One decoded and normalized vector.\n * @param v3 One decoded and normalized vector.\n */\nexport function octUnpack(packed: Vector2, v1: Vector3, v2: Vector3, v3: Vector3): void {\n let temp = packed.x / 65536.0;\n const x = Math.floor(temp);\n const encodedFloat1 = (temp - x) * 65536.0;\n\n temp = packed.y / 65536.0;\n const y = Math.floor(temp);\n const encodedFloat2 = (temp - y) * 65536.0;\n\n octDecodeFloat(encodedFloat1, v1);\n octDecodeFloat(encodedFloat2, v2);\n octDecode(x, y, v3);\n}\n\n/**\n * Pack texture coordinates into a single float. The texture coordinates will only preserve 12 bits of precision.\n *\n * @param textureCoordinates The texture coordinates to compress. Both coordinates must be in the range 0.0-1.0.\n * @returns The packed texture coordinates.\n *\n */\nexport function compressTextureCoordinates(textureCoordinates: Vector2): number {\n // Move x and y to the range 0-4095;\n const x = (textureCoordinates.x * 4095.0) | 0;\n const y = (textureCoordinates.y * 4095.0) | 0;\n return 4096.0 * x + y;\n}\n\n/**\n * Decompresses texture coordinates that were packed into a single float.\n *\n * @param compressed The compressed texture coordinates.\n * @param result The decompressed texture coordinates.\n * @returns The modified result parameter.\n *\n */\nexport function decompressTextureCoordinates(compressed: number, result: Vector2): Vector2 {\n const temp = compressed / 4096.0;\n const xZeroTo4095 = Math.floor(temp);\n result.x = xZeroTo4095 / 4095.0;\n result.y = (compressed - xZeroTo4095 * 4096) / 4095;\n return result;\n}\n\n/**\n * Decodes delta and ZigZag encoded vertices. This modifies the buffers in place.\n *\n * @param uBuffer The buffer view of u values.\n * @param vBuffer The buffer view of v values.\n * @param [heightBuffer] The buffer view of height values.\n *\n * @link https://github.com/AnalyticalGraphicsInc/quantized-mesh|quantized-mesh-1.0 terrain format\n */\nexport function zigZagDeltaDecode(\n uBuffer: Uint16Array,\n vBuffer: Uint16Array,\n heightBuffer?: Uint16Array | number[]\n) {\n assert(uBuffer);\n assert(vBuffer);\n assert(uBuffer.length === vBuffer.length);\n if (heightBuffer) {\n assert(uBuffer.length === heightBuffer.length);\n }\n\n function zigZagDecode(value: number) {\n return (value >> 1) ^ -(value & 1);\n }\n\n let u = 0;\n let v = 0;\n let height = 0;\n\n for (let i = 0; i < uBuffer.length; ++i) {\n u += zigZagDecode(uBuffer[i]);\n v += zigZagDecode(vBuffer[i]);\n\n uBuffer[i] = u;\n vBuffer[i] = v;\n\n if (heightBuffer) {\n height += zigZagDecode(heightBuffer[i]);\n heightBuffer[i] = height;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"attribute-compression.js","names":["_core","require","_assert","RIGHT_SHIFT","LEFT_SHIFT","scratchVector2","Vector2","scratchVector3","Vector3","scratchEncodeVector2","octEncodeScratch","uint8ForceArray","Uint8Array","forceUint8","value","fromSNorm","rangeMaximum","arguments","length","undefined","clamp","toSNorm","Math","round","signNotZero","octEncodeInRange","vector","rangeMax","result","assert","vector3","from","abs","magnitudeSquared","_MathUtils","EPSILON6","x","y","z","octEncode","octEncodeToVector4","w","octDecodeInRange","Error","concat","oldVX","normalize","octDecode","octDecodeFromVector4","encoded","xOct16","yOct16","octPackFloat","vector2","octEncodeFloat","octDecodeFloat","Number","isFinite","temp","floor","octPack","v1","v2","v3","encoded1","encoded2","encoded3","octUnpack","packed","encodedFloat1","encodedFloat2","compressTextureCoordinates","textureCoordinates","decompressTextureCoordinates","compressed","xZeroTo4095","zigZagDeltaDecode","uBuffer","vBuffer","heightBuffer","zigZagDecode","u","v","height","i"],"sources":["../../../../src/geometry/compression/attribute-compression.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n// Attribute compression and decompression functions.\n\nimport {Vector2, Vector3, clamp, _MathUtils} from '@math.gl/core';\nimport {assert} from '../utils/assert';\n\ntype Vector4 = {\n x: number;\n y: number;\n z: number;\n w: number;\n};\n\nconst RIGHT_SHIFT = 1.0 / 256.0;\nconst LEFT_SHIFT = 256.0;\n\nconst scratchVector2 = new Vector2();\nconst scratchVector3 = new Vector3();\nconst scratchEncodeVector2 = new Vector2();\nconst octEncodeScratch = new Vector2();\n\nconst uint8ForceArray = new Uint8Array(1);\n\n/**\n * Force a value to Uint8\n *\n * @param value\n * @returns\n */\nfunction forceUint8(value: number): number {\n uint8ForceArray[0] = value;\n return uint8ForceArray[0];\n}\n\n/**\n * Converts a SNORM value in the range [0, rangeMaximum] to a scalar in the range [-1.0, 1.0].\n *\n * @param value SNORM value in the range [0, rangeMaximum]\n * @param [rangeMaximum=255] The maximum value in the SNORM range, 255 by default.\n * @returns Scalar in the range [-1.0, 1.0].\n *\n * @see CesiumMath.toSNorm\n */\nfunction fromSNorm(value: number, rangeMaximum = 255): number {\n return (clamp(value, 0.0, rangeMaximum) / rangeMaximum) * 2.0 - 1.0;\n}\n\n/**\n * Converts a scalar value in the range [-1.0, 1.0] to a SNORM in the range [0, rangeMaximum].\n *\n * @param value The scalar value in the range [-1.0, 1.0]\n * @param [rangeMaximum=255] The maximum value in the mapped range, 255 by default.\n * @returns A SNORM value, where 0 maps to -1.0 and rangeMaximum maps to 1.0.\n *\n * @see CesiumMath.fromSNorm\n */\nfunction toSNorm(value: number, rangeMaximum = 255): number {\n return Math.round((clamp(value, -1.0, 1.0) * 0.5 + 0.5) * rangeMaximum);\n}\n\n/**\n * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative.\n * This is similar to `Math.sign` except that returns 1.0 instead of\n * 0.0 when the input value is 0.0.\n *\n * @param value The value to return the sign of.\n * @returns The sign of value.\n */\nfunction signNotZero(value: number): number {\n return value < 0.0 ? -1.0 : 1.0;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-rangeMax] following the 'oct' encoding.\n *\n * Oct encoding is a compact representation of unit length vectors.\n * The 'oct' encoding is described in \"A Survey of Efficient Representations of Independent Unit Vectors\",\n * Cigolle et al 2014: {@link http://jcgt.org/published/0003/02/01/}\n *\n * @param vector The normalized vector to be compressed into 2 component 'oct' encoding.\n * @param result The 2 component oct-encoded unit length vector.\n * @param rangeMax The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.\n * @returns The 2 component oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octDecodeInRange\n */\nexport function octEncodeInRange(vector: Vector3, rangeMax: number, result: Vector2): Vector2 {\n assert(vector);\n assert(result);\n\n const vector3 = scratchVector3.from(vector);\n\n assert(Math.abs(vector3.magnitudeSquared() - 1.0) <= _MathUtils.EPSILON6);\n\n result.x = vector.x / (Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z));\n result.y = vector.y / (Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z));\n\n if (vector.z < 0) {\n const x = result.x;\n const y = result.y;\n result.x = (1.0 - Math.abs(y)) * signNotZero(x);\n result.y = (1.0 - Math.abs(x)) * signNotZero(y);\n }\n\n result.x = toSNorm(result.x, rangeMax);\n result.y = toSNorm(result.y, rangeMax);\n\n return result;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-255] following the 'oct' encoding.\n *\n * @param vector The normalized vector to be compressed into 2 byte 'oct' encoding.\n * @param result The 2 byte oct-encoded unit length vector.\n * @returns he 2 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octEncodeInRange\n * @see octDecode\n */\nexport function octEncode(vector: Vector3, result: Vector2): Vector2 {\n return octEncodeInRange(vector, 255, result);\n}\n\n/**\n * Encodes a normalized vector into 4-byte vector\n * @param vector The normalized vector to be compressed into 4 byte 'oct' encoding.\n * @param result The 4 byte oct-encoded unit length vector.\n * @returns The 4 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n *\n * @see octEncodeInRange\n * @see octDecodeFromVector4\n */\nexport function octEncodeToVector4(vector: Vector3, result: Vector4): Vector4 {\n octEncodeInRange(vector, 65535, octEncodeScratch);\n result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);\n result.y = forceUint8(octEncodeScratch.x);\n result.z = forceUint8(octEncodeScratch.y * RIGHT_SHIFT);\n result.w = forceUint8(octEncodeScratch.y);\n return result;\n}\n\n/**\n * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component vector.\n *\n * @param x The x component of the oct-encoded unit length vector.\n * @param y The y component of the oct-encoded unit length vector.\n * @param rangeMax The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits.\n * @param result The decoded and normalized vector\n * @returns The decoded and normalized vector.\n *\n * @exception x and y must be unsigned normalized integers between 0 and rangeMax.\n *\n * @see octEncodeInRange\n */\nexport function octDecodeInRange(x: number, y: number, rangeMax: number, result: Vector3): Vector3 {\n assert(result);\n if (x < 0 || x > rangeMax || y < 0 || y > rangeMax) {\n throw new Error(`x and y must be unsigned normalized integers between 0 and ${rangeMax}`);\n }\n\n result.x = fromSNorm(x, rangeMax);\n result.y = fromSNorm(y, rangeMax);\n result.z = 1.0 - (Math.abs(result.x) + Math.abs(result.y));\n\n if (result.z < 0.0) {\n const oldVX = result.x;\n result.x = (1.0 - Math.abs(result.y)) * signNotZero(oldVX);\n result.y = (1.0 - Math.abs(oldVX)) * signNotZero(result.y);\n }\n\n return result.normalize();\n}\n\n/**\n * Decodes a unit-length vector in 2 byte 'oct' encoding to a normalized 3-component vector.\n *\n * @param x The x component of the oct-encoded unit length vector.\n * @param y The y component of the oct-encoded unit length vector.\n * @param result The decoded and normalized vector.\n * @returns he decoded and normalized vector.\n *\n * @exception x and y must be an unsigned normalized integer between 0 and 255.\n *\n * @see octDecodeInRange\n */\nexport function octDecode(x: number, y: number, result: Vector3): Vector3 {\n return octDecodeInRange(x, y, 255, result);\n}\n\n/**\n * Decodes a unit-length vector in 4 byte 'oct' encoding to a normalized 3-component vector.\n *\n * @param encoded The oct-encoded unit length vector.\n * @param esult The decoded and normalized vector.\n * @returns The decoded and normalized vector.\n *\n * @exception x, y, z, and w must be unsigned normalized integers between 0 and 255.\n *\n * @see octDecodeInRange\n * @see octEncodeToVector4\n */\nexport function octDecodeFromVector4(encoded: Vector4, result: Vector3): Vector3 {\n assert(encoded);\n assert(result);\n const x = encoded.x;\n const y = encoded.y;\n const z = encoded.z;\n const w = encoded.w;\n\n if (x < 0 || x > 255 || y < 0 || y > 255 || z < 0 || z > 255 || w < 0 || w > 255) {\n throw new Error('x, y, z, and w must be unsigned normalized integers between 0 and 255');\n }\n\n const xOct16 = x * LEFT_SHIFT + y;\n const yOct16 = z * LEFT_SHIFT + w;\n return octDecodeInRange(xOct16, yOct16, 65535, result);\n}\n\n/**\n * Packs an oct encoded vector into a single floating-point number.\n *\n * @param encoded The oct encoded vector.\n * @returns The oct encoded vector packed into a single float.\n *\n */\nexport function octPackFloat(encoded: Vector2): number {\n const vector2 = scratchVector2.from(encoded);\n return 256.0 * vector2.x + vector2.y;\n}\n\n/**\n * Encodes a normalized vector into 2 SNORM values in the range of [0-255] following the 'oct' encoding and\n * stores those values in a single float-point number.\n *\n * @param vector The normalized vector to be compressed into 2 byte 'oct' encoding.\n * @returns The 2 byte oct-encoded unit length vector.\n *\n * @exception vector must be normalized.\n */\nexport function octEncodeFloat(vector: Vector3): number {\n octEncode(vector, scratchEncodeVector2);\n return octPackFloat(scratchEncodeVector2);\n}\n\n/**\n * Decodes a unit-length vector in 'oct' encoding packed in a floating-point number to a normalized 3-component vector.\n *\n * @param value The oct-encoded unit length vector stored as a single floating-point number.\n * @param result The decoded and normalized vector\n * @returns The decoded and normalized vector.\n *\n */\nexport function octDecodeFloat(value: number, result: Vector3): Vector3 {\n assert(Number.isFinite(value));\n\n const temp = value / 256.0;\n const x = Math.floor(temp);\n const y = (temp - x) * 256.0;\n\n return octDecode(x, y, result);\n}\n\n/**\n * Encodes three normalized vectors into 6 SNORM values in the range of [0-255] following the 'oct' encoding and\n * packs those into two floating-point numbers.\n *\n * @param v1 A normalized vector to be compressed.\n * @param v2 A normalized vector to be compressed.\n * @param v3 A normalized vector to be compressed.\n * @param result The 'oct' encoded vectors packed into two floating-point numbers.\n * @returns The 'oct' encoded vectors packed into two floating-point numbers.\n *\n */\nexport function octPack(v1: Vector3, v2: Vector3, v3: Vector3, result: Vector2): Vector2 {\n assert(v1);\n assert(v2);\n assert(v3);\n assert(result);\n\n const encoded1 = octEncodeFloat(v1);\n const encoded2 = octEncodeFloat(v2);\n\n const encoded3 = octEncode(v3, scratchEncodeVector2);\n result.x = 65536.0 * encoded3.x + encoded1;\n result.y = 65536.0 * encoded3.y + encoded2;\n return result;\n}\n\n/**\n * Decodes three unit-length vectors in 'oct' encoding packed into a floating-point number to a normalized 3-component vector.\n *\n * @param packed The three oct-encoded unit length vectors stored as two floating-point number.\n * @param v1 One decoded and normalized vector.\n * @param v2 One decoded and normalized vector.\n * @param v3 One decoded and normalized vector.\n */\nexport function octUnpack(packed: Vector2, v1: Vector3, v2: Vector3, v3: Vector3): void {\n let temp = packed.x / 65536.0;\n const x = Math.floor(temp);\n const encodedFloat1 = (temp - x) * 65536.0;\n\n temp = packed.y / 65536.0;\n const y = Math.floor(temp);\n const encodedFloat2 = (temp - y) * 65536.0;\n\n octDecodeFloat(encodedFloat1, v1);\n octDecodeFloat(encodedFloat2, v2);\n octDecode(x, y, v3);\n}\n\n/**\n * Pack texture coordinates into a single float. The texture coordinates will only preserve 12 bits of precision.\n *\n * @param textureCoordinates The texture coordinates to compress. Both coordinates must be in the range 0.0-1.0.\n * @returns The packed texture coordinates.\n *\n */\nexport function compressTextureCoordinates(textureCoordinates: Vector2): number {\n // Move x and y to the range 0-4095;\n const x = (textureCoordinates.x * 4095.0) | 0;\n const y = (textureCoordinates.y * 4095.0) | 0;\n return 4096.0 * x + y;\n}\n\n/**\n * Decompresses texture coordinates that were packed into a single float.\n *\n * @param compressed The compressed texture coordinates.\n * @param result The decompressed texture coordinates.\n * @returns The modified result parameter.\n *\n */\nexport function decompressTextureCoordinates(compressed: number, result: Vector2): Vector2 {\n const temp = compressed / 4096.0;\n const xZeroTo4095 = Math.floor(temp);\n result.x = xZeroTo4095 / 4095.0;\n result.y = (compressed - xZeroTo4095 * 4096) / 4095;\n return result;\n}\n\n/**\n * Decodes delta and ZigZag encoded vertices. This modifies the buffers in place.\n *\n * @param uBuffer The buffer view of u values.\n * @param vBuffer The buffer view of v values.\n * @param [heightBuffer] The buffer view of height values.\n *\n * @link https://github.com/AnalyticalGraphicsInc/quantized-mesh|quantized-mesh-1.0 terrain format\n */\nexport function zigZagDeltaDecode(\n uBuffer: Uint16Array,\n vBuffer: Uint16Array,\n heightBuffer?: Uint16Array | number[]\n) {\n assert(uBuffer);\n assert(vBuffer);\n assert(uBuffer.length === vBuffer.length);\n if (heightBuffer) {\n assert(uBuffer.length === heightBuffer.length);\n }\n\n function zigZagDecode(value: number) {\n return (value >> 1) ^ -(value & 1);\n }\n\n let u = 0;\n let v = 0;\n let height = 0;\n\n for (let i = 0; i < uBuffer.length; ++i) {\n u += zigZagDecode(uBuffer[i]);\n v += zigZagDecode(vBuffer[i]);\n\n uBuffer[i] = u;\n vBuffer[i] = v;\n\n if (heightBuffer) {\n height += zigZagDecode(heightBuffer[i]);\n heightBuffer[i] = height;\n }\n }\n}\n"],"mappings":"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"}
@@ -8,13 +8,11 @@ exports.GL_TYPE = exports.GL_PRIMITIVE_MODE = exports.GL_PRIMITIVE = exports.GL
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
10
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
-
12
11
  var GL_PRIMITIVE = {
13
12
  POINTS: 0x0000,
14
13
  LINES: 0x0001,
15
14
  TRIANGLES: 0x0004
16
15
  };
17
-
18
16
  exports.GL_PRIMITIVE = GL_PRIMITIVE;
19
17
  var GL_PRIMITIVE_MODE = {
20
18
  POINTS: 0x0000,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["GL_PRIMITIVE","POINTS","LINES","TRIANGLES","GL_PRIMITIVE_MODE","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN","GL_TYPE","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DOUBLE","GL"],"sources":["../../../src/geometry/constants.ts"],"sourcesContent":["// Subset of WebGL constants\n\nexport const GL_PRIMITIVE = {\n POINTS: 0x0000, // Points. single points.\n LINES: 0x0001, // Lines. Each vertex connects to the one after it.\n TRIANGLES: 0x0004 // Triangles. Each set of three vertices creates a separate triangle.\n};\n\n// Primitive modes\nexport const GL_PRIMITIVE_MODE = {\n POINTS: 0x0000, // Points. single points.\n LINES: 0x0001, // Lines. Each vertex connects to the one after it.\n LINE_LOOP: 0x0002, // Lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: 0x0003, // Lines/ a connected group of line segments from the first vertex to the last\n TRIANGLES: 0x0004, // Triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: 0x0005, // Triangles. A connected group of triangles.\n TRIANGLE_FAN: 0x0006 // Triangles. A connected group of triangles.\n // Each vertex connects to the previous and the first vertex in the fan.\n};\n\ntype glType = {\n BYTE: number;\n UNSIGNED_BYTE: number;\n SHORT: number;\n UNSIGNED_SHORT: number;\n INT: number;\n UNSIGNED_INT: number;\n FLOAT: number;\n DOUBLE: number;\n};\n\nexport const GL_TYPE: glType = {\n BYTE: 5120,\n UNSIGNED_BYTE: 5121,\n SHORT: 5122,\n UNSIGNED_SHORT: 5123,\n INT: 5124,\n UNSIGNED_INT: 5125,\n FLOAT: 5126,\n DOUBLE: 5130\n};\n\nexport const GL = {\n ...GL_PRIMITIVE_MODE,\n ...GL_TYPE\n};\n"],"mappings":";;;;;;;;;;;AAEO,IAAMA,YAAY,GAAG;EAC1BC,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE;AACb,CAAC;;AAAC;AAGK,IAAMC,iBAAiB,GAAG;EAC/BH,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbG,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,MAAM;EAClBH,SAAS,EAAE,MAAM;EACjBI,cAAc,EAAE,MAAM;EACtBC,YAAY,EAAE;AAEhB,CAAC;AAAC;AAaK,IAAMC,OAAe,GAAG;EAC7BC,IAAI,EAAE,IAAI;EACVC,aAAa,EAAE,IAAI;EACnBC,KAAK,EAAE,IAAI;EACXC,cAAc,EAAE,IAAI;EACpBC,GAAG,EAAE,IAAI;EACTC,YAAY,EAAE,IAAI;EAClBC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE;AACV,CAAC;AAAC;AAEK,IAAMC,EAAE,mCACVd,iBAAiB,GACjBK,OAAO,CACX;AAAC"}
1
+ {"version":3,"file":"constants.js","names":["GL_PRIMITIVE","POINTS","LINES","TRIANGLES","exports","GL_PRIMITIVE_MODE","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN","GL_TYPE","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DOUBLE","GL","_objectSpread"],"sources":["../../../src/geometry/constants.ts"],"sourcesContent":["// Subset of WebGL constants\n\nexport const GL_PRIMITIVE = {\n POINTS: 0x0000, // Points. single points.\n LINES: 0x0001, // Lines. Each vertex connects to the one after it.\n TRIANGLES: 0x0004 // Triangles. Each set of three vertices creates a separate triangle.\n};\n\n// Primitive modes\nexport const GL_PRIMITIVE_MODE = {\n POINTS: 0x0000, // Points. single points.\n LINES: 0x0001, // Lines. Each vertex connects to the one after it.\n LINE_LOOP: 0x0002, // Lines. Each set of two vertices is treated as a separate line segment.\n LINE_STRIP: 0x0003, // Lines/ a connected group of line segments from the first vertex to the last\n TRIANGLES: 0x0004, // Triangles. Each set of three vertices creates a separate triangle.\n TRIANGLE_STRIP: 0x0005, // Triangles. A connected group of triangles.\n TRIANGLE_FAN: 0x0006 // Triangles. A connected group of triangles.\n // Each vertex connects to the previous and the first vertex in the fan.\n};\n\ntype glType = {\n BYTE: number;\n UNSIGNED_BYTE: number;\n SHORT: number;\n UNSIGNED_SHORT: number;\n INT: number;\n UNSIGNED_INT: number;\n FLOAT: number;\n DOUBLE: number;\n};\n\nexport const GL_TYPE: glType = {\n BYTE: 5120,\n UNSIGNED_BYTE: 5121,\n SHORT: 5122,\n UNSIGNED_SHORT: 5123,\n INT: 5124,\n UNSIGNED_INT: 5125,\n FLOAT: 5126,\n DOUBLE: 5130\n};\n\nexport const GL = {\n ...GL_PRIMITIVE_MODE,\n ...GL_TYPE\n};\n"],"mappings":";;;;;;;;;;AAEO,IAAMA,YAAY,GAAG;EAC1BC,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE;AACb,CAAC;AAACC,OAAA,CAAAJ,YAAA,GAAAA,YAAA;AAGK,IAAMK,iBAAiB,GAAG;EAC/BJ,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbI,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,MAAM;EAClBJ,SAAS,EAAE,MAAM;EACjBK,cAAc,EAAE,MAAM;EACtBC,YAAY,EAAE;AAEhB,CAAC;AAACL,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAaK,IAAMK,OAAe,GAAG;EAC7BC,IAAI,EAAE,IAAI;EACVC,aAAa,EAAE,IAAI;EACnBC,KAAK,EAAE,IAAI;EACXC,cAAc,EAAE,IAAI;EACpBC,GAAG,EAAE,IAAI;EACTC,YAAY,EAAE,IAAI;EAClBC,KAAK,EAAE,IAAI;EACXC,MAAM,EAAE;AACV,CAAC;AAACd,OAAA,CAAAM,OAAA,GAAAA,OAAA;AAEK,IAAMS,EAAE,GAAAC,aAAA,CAAAA,aAAA,KACVf,iBAAiB,GACjBK,OAAO,CACX;AAACN,OAAA,CAAAe,EAAA,GAAAA,EAAA"}
@@ -28,8 +28,7 @@ var GLType = function () {
28
28
  }
29
29
  (0, _createClass2.default)(GLType, null, [{
30
30
  key: "fromTypedArray",
31
- value:
32
- function fromTypedArray(arrayOrType) {
31
+ value: function fromTypedArray(arrayOrType) {
33
32
  arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
34
33
  for (var glType in GL_TYPE_TO_ARRAY_TYPE) {
35
34
  var ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
@@ -41,8 +40,7 @@ var GLType = function () {
41
40
  }
42
41
  }, {
43
42
  key: "fromName",
44
- value:
45
- function fromName(name) {
43
+ value: function fromName(name) {
46
44
  var glType = NAME_TO_GL_TYPE[name];
47
45
  if (!glType) {
48
46
  throw new Error(ERR_TYPE_CONVERSION);
@@ -51,8 +49,7 @@ var GLType = function () {
51
49
  }
52
50
  }, {
53
51
  key: "getArrayType",
54
- value:
55
- function getArrayType(glType) {
52
+ value: function getArrayType(glType) {
56
53
  switch (glType) {
57
54
  case _constants.GL_TYPE.UNSIGNED_SHORT_5_6_5:
58
55
  case _constants.GL_TYPE.UNSIGNED_SHORT_4_4_4_4:
@@ -68,21 +65,18 @@ var GLType = function () {
68
65
  }
69
66
  }, {
70
67
  key: "getByteSize",
71
- value:
72
- function getByteSize(glType) {
68
+ value: function getByteSize(glType) {
73
69
  var ArrayType = GLType.getArrayType(glType);
74
70
  return ArrayType.BYTES_PER_ELEMENT;
75
71
  }
76
72
  }, {
77
73
  key: "validate",
78
- value:
79
- function validate(glType) {
74
+ value: function validate(glType) {
80
75
  return Boolean(GLType.getArrayType(glType));
81
76
  }
82
77
  }, {
83
78
  key: "createTypedArray",
84
- value:
85
- function createTypedArray(glType, buffer) {
79
+ value: function createTypedArray(glType, buffer) {
86
80
  var byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
87
81
  var length = arguments.length > 3 ? arguments[3] : undefined;
88
82
  if (length === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"gl-type.js","names":["GL_TYPE_TO_ARRAY_TYPE","GL","DOUBLE","Float64Array","FLOAT","Float32Array","UNSIGNED_SHORT","Uint16Array","UNSIGNED_INT","Uint32Array","UNSIGNED_BYTE","Uint8Array","BYTE","Int8Array","SHORT","Int16Array","INT","Int32Array","NAME_TO_GL_TYPE","ERR_TYPE_CONVERSION","GLType","arrayOrType","ArrayBuffer","isView","constructor","glType","ArrayType","Error","name","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","getArrayType","BYTES_PER_ELEMENT","Boolean","buffer","byteOffset","length","undefined","byteLength","getByteSize"],"sources":["../../../../src/geometry/gl/gl-type.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {GL_TYPE as GL} from '../constants';\n\nconst GL_TYPE_TO_ARRAY_TYPE = {\n [GL.DOUBLE]: Float64Array,\n [GL.FLOAT]: Float32Array,\n [GL.UNSIGNED_SHORT]: Uint16Array,\n [GL.UNSIGNED_INT]: Uint32Array,\n [GL.UNSIGNED_BYTE]: Uint8Array,\n [GL.BYTE]: Int8Array,\n [GL.SHORT]: Int16Array,\n [GL.INT]: Int32Array\n};\ntype GlTypeMap = {\n [index: string]: number;\n};\nconst NAME_TO_GL_TYPE: GlTypeMap = {\n DOUBLE: GL.DOUBLE,\n FLOAT: GL.FLOAT,\n UNSIGNED_SHORT: GL.UNSIGNED_SHORT,\n UNSIGNED_INT: GL.UNSIGNED_INT,\n UNSIGNED_BYTE: GL.UNSIGNED_BYTE,\n BYTE: GL.BYTE,\n SHORT: GL.SHORT,\n INT: GL.INT\n};\nconst ERR_TYPE_CONVERSION = 'Failed to convert GL type';\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport default class GLType {\n // Signature: fromTypedArray(new Uint8Array())\n // Signature: fromTypedArray(Uint8Array)\n /**\n * Returns the size, in bytes, of the corresponding datatype\n * @param arrayOrType\n * @returns glType a a string\n */\n static fromTypedArray(arrayOrType: TypedArray | Function): string {\n // If typed array, look up constructor\n arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n for (const glType in GL_TYPE_TO_ARRAY_TYPE) {\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (ArrayType === arrayOrType) {\n return glType;\n }\n }\n throw new Error(ERR_TYPE_CONVERSION);\n }\n /**\n * Extracts name for glType from array NAME_TO_GL_TYPE\n * @param name\n * @returns glType as a number\n */\n static fromName(name: string): number {\n const glType = NAME_TO_GL_TYPE[name];\n if (!glType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return glType;\n }\n // Converts GL constant to corresponding typed array type\n // eslint-disable-next-line complexity\n static getArrayType(glType: number) {\n switch (glType) {\n /*eslint-disable*/\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_6_5:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_4_4_4_4:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_5_5_1:\n /* eslint-enable*/\n return Uint16Array;\n default:\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (!ArrayType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return ArrayType;\n }\n }\n /**\n * Returns the size in bytes of one element of the provided WebGL type\n * @param glType\n * @returns size of glType\n */\n static getByteSize(glType: number): number {\n const ArrayType = GLType.getArrayType(glType);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n /**\n * Returns `true` if `glType` is a valid WebGL data type.\n * @param glType\n * @returns boolean\n */\n static validate(glType: number): boolean {\n return Boolean(GLType.getArrayType(glType));\n }\n /**\n * Creates a typed view of an array of bytes\n * @param glType The type of typed array (ArrayBuffer view) to create\n * @param buffer The buffer storage to use for the view.\n * @param byteOffset The offset, in bytes, to the first element in the view\n * @param length The number of elements in the view. Defaults to buffer length\n * @returns A typed array view of the buffer\n */\n static createTypedArray(\n glType: number,\n buffer: TypedArray,\n byteOffset: number = 0,\n length?: number\n ): TypedArray {\n if (length === undefined) {\n length = (buffer.byteLength - byteOffset) / GLType.getByteSize(glType);\n }\n const ArrayType = GLType.getArrayType(glType);\n return new ArrayType(buffer, byteOffset, length);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"gl-type.js","names":["_constants","require","_GL_TYPE_TO_ARRAY_TYP","GL_TYPE_TO_ARRAY_TYPE","_defineProperty2","default","GL","DOUBLE","Float64Array","FLOAT","Float32Array","UNSIGNED_SHORT","Uint16Array","UNSIGNED_INT","Uint32Array","UNSIGNED_BYTE","Uint8Array","BYTE","Int8Array","SHORT","Int16Array","INT","Int32Array","NAME_TO_GL_TYPE","ERR_TYPE_CONVERSION","GLType","_classCallCheck2","_createClass2","key","value","fromTypedArray","arrayOrType","ArrayBuffer","isView","constructor","glType","ArrayType","Error","fromName","name","getArrayType","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","getByteSize","BYTES_PER_ELEMENT","validate","Boolean","createTypedArray","buffer","byteOffset","arguments","length","undefined","byteLength","exports"],"sources":["../../../../src/geometry/gl/gl-type.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {GL_TYPE as GL} from '../constants';\n\nconst GL_TYPE_TO_ARRAY_TYPE = {\n [GL.DOUBLE]: Float64Array,\n [GL.FLOAT]: Float32Array,\n [GL.UNSIGNED_SHORT]: Uint16Array,\n [GL.UNSIGNED_INT]: Uint32Array,\n [GL.UNSIGNED_BYTE]: Uint8Array,\n [GL.BYTE]: Int8Array,\n [GL.SHORT]: Int16Array,\n [GL.INT]: Int32Array\n};\ntype GlTypeMap = {\n [index: string]: number;\n};\nconst NAME_TO_GL_TYPE: GlTypeMap = {\n DOUBLE: GL.DOUBLE,\n FLOAT: GL.FLOAT,\n UNSIGNED_SHORT: GL.UNSIGNED_SHORT,\n UNSIGNED_INT: GL.UNSIGNED_INT,\n UNSIGNED_BYTE: GL.UNSIGNED_BYTE,\n BYTE: GL.BYTE,\n SHORT: GL.SHORT,\n INT: GL.INT\n};\nconst ERR_TYPE_CONVERSION = 'Failed to convert GL type';\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport default class GLType {\n // Signature: fromTypedArray(new Uint8Array())\n // Signature: fromTypedArray(Uint8Array)\n /**\n * Returns the size, in bytes, of the corresponding datatype\n * @param arrayOrType\n * @returns glType a a string\n */\n static fromTypedArray(arrayOrType: TypedArray | Function): string {\n // If typed array, look up constructor\n arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n for (const glType in GL_TYPE_TO_ARRAY_TYPE) {\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (ArrayType === arrayOrType) {\n return glType;\n }\n }\n throw new Error(ERR_TYPE_CONVERSION);\n }\n /**\n * Extracts name for glType from array NAME_TO_GL_TYPE\n * @param name\n * @returns glType as a number\n */\n static fromName(name: string): number {\n const glType = NAME_TO_GL_TYPE[name];\n if (!glType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return glType;\n }\n // Converts GL constant to corresponding typed array type\n // eslint-disable-next-line complexity\n static getArrayType(glType: number) {\n switch (glType) {\n /*eslint-disable*/\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_6_5:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_4_4_4_4:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_5_5_1:\n /* eslint-enable*/\n return Uint16Array;\n default:\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (!ArrayType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return ArrayType;\n }\n }\n /**\n * Returns the size in bytes of one element of the provided WebGL type\n * @param glType\n * @returns size of glType\n */\n static getByteSize(glType: number): number {\n const ArrayType = GLType.getArrayType(glType);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n /**\n * Returns `true` if `glType` is a valid WebGL data type.\n * @param glType\n * @returns boolean\n */\n static validate(glType: number): boolean {\n return Boolean(GLType.getArrayType(glType));\n }\n /**\n * Creates a typed view of an array of bytes\n * @param glType The type of typed array (ArrayBuffer view) to create\n * @param buffer The buffer storage to use for the view.\n * @param byteOffset The offset, in bytes, to the first element in the view\n * @param length The number of elements in the view. Defaults to buffer length\n * @returns A typed array view of the buffer\n */\n static createTypedArray(\n glType: number,\n buffer: TypedArray,\n byteOffset: number = 0,\n length?: number\n ): TypedArray {\n if (length === undefined) {\n length = (buffer.byteLength - byteOffset) / GLType.getByteSize(glType);\n }\n const ArrayType = GLType.getArrayType(glType);\n return new ArrayType(buffer, byteOffset, length);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-geometry.js","names":["isGeometry","geometry","mode","attributes"],"sources":["../../../src/geometry/is-geometry.ts"],"sourcesContent":["/**\n * Checking if it is geometry\n * @param geometry\n */\nexport default function isGeometry(geometry: any): boolean {\n return (\n geometry &&\n typeof geometry === 'object' &&\n geometry.mode &&\n geometry.attributes &&\n typeof geometry.attributes === 'object'\n );\n}\n"],"mappings":";;;;;;;;AAIe,SAASA,UAAU,CAACC,QAAa,EAAW;EACzD,OACEA,QAAQ,IACR,sBAAOA,QAAQ,MAAK,QAAQ,IAC5BA,QAAQ,CAACC,IAAI,IACbD,QAAQ,CAACE,UAAU,IACnB,sBAAOF,QAAQ,CAACE,UAAU,MAAK,QAAQ;AAE3C"}
1
+ {"version":3,"file":"is-geometry.js","names":["isGeometry","geometry","_typeof2","default","mode","attributes"],"sources":["../../../src/geometry/is-geometry.ts"],"sourcesContent":["/**\n * Checking if it is geometry\n * @param geometry\n */\nexport default function isGeometry(geometry: any): boolean {\n return (\n geometry &&\n typeof geometry === 'object' &&\n geometry.mode &&\n geometry.attributes &&\n typeof geometry.attributes === 'object'\n );\n}\n"],"mappings":";;;;;;;;AAIe,SAASA,UAAUA,CAACC,QAAa,EAAW;EACzD,OACEA,QAAQ,IACR,IAAAC,QAAA,CAAAC,OAAA,EAAOF,QAAQ,MAAK,QAAQ,IAC5BA,QAAQ,CAACG,IAAI,IACbH,QAAQ,CAACI,UAAU,IACnB,IAAAH,QAAA,CAAAC,OAAA,EAAOF,QAAQ,CAACI,UAAU,MAAK,QAAQ;AAE3C"}