@maplibre/mlt 1.1.7 → 1.1.9

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 (137) hide show
  1. package/dist/decoding/bigEndianDecode.d.ts +1 -1
  2. package/dist/decoding/bigEndianDecode.js.map +1 -1
  3. package/dist/decoding/decodingTestUtils.d.ts +3 -2
  4. package/dist/decoding/decodingTestUtils.js +21 -22
  5. package/dist/decoding/decodingTestUtils.js.map +1 -1
  6. package/dist/decoding/fastPforDecoder.d.ts +5 -6
  7. package/dist/decoding/fastPforDecoder.js +6 -6
  8. package/dist/decoding/fastPforDecoder.js.map +1 -1
  9. package/dist/decoding/fastPforShared.d.ts +0 -2
  10. package/dist/decoding/fastPforShared.js.map +1 -1
  11. package/dist/decoding/fastPforUnpack.d.ts +23 -23
  12. package/dist/decoding/fastPforUnpack.js.map +1 -1
  13. package/dist/decoding/geometryDecoder.js +41 -41
  14. package/dist/decoding/geometryDecoder.js.map +1 -1
  15. package/dist/decoding/intWrapper.js +0 -1
  16. package/dist/decoding/intWrapper.js.map +1 -1
  17. package/dist/decoding/integerDecodingUtils.d.ts +21 -17
  18. package/dist/decoding/integerDecodingUtils.js +71 -30
  19. package/dist/decoding/integerDecodingUtils.js.map +1 -1
  20. package/dist/decoding/integerStreamDecoder.d.ts +14 -10
  21. package/dist/decoding/integerStreamDecoder.js +150 -63
  22. package/dist/decoding/integerStreamDecoder.js.map +1 -1
  23. package/dist/decoding/propertyDecoder.js +33 -27
  24. package/dist/decoding/propertyDecoder.js.map +1 -1
  25. package/dist/decoding/stringDecoder.d.ts +1 -1
  26. package/dist/decoding/stringDecoder.js +32 -30
  27. package/dist/decoding/stringDecoder.js.map +1 -1
  28. package/dist/decoding/unpackNullableUtils.d.ts +2 -2
  29. package/dist/decoding/unpackNullableUtils.js.map +1 -1
  30. package/dist/encoding/bigEndianEncode.d.ts +1 -1
  31. package/dist/encoding/bigEndianEncode.js.map +1 -1
  32. package/dist/encoding/constGeometryVectorEncoder.js +9 -9
  33. package/dist/encoding/constGeometryVectorEncoder.js.map +1 -1
  34. package/dist/encoding/encodingUtils.d.ts +1 -1
  35. package/dist/encoding/encodingUtils.js +1 -1
  36. package/dist/encoding/encodingUtils.js.map +1 -1
  37. package/dist/encoding/fastPforEncoder.d.ts +4 -5
  38. package/dist/encoding/fastPforEncoder.js +4 -4
  39. package/dist/encoding/fastPforEncoder.js.map +1 -1
  40. package/dist/encoding/integerEncodingUtils.d.ts +14 -14
  41. package/dist/encoding/integerEncodingUtils.js +39 -31
  42. package/dist/encoding/integerEncodingUtils.js.map +1 -1
  43. package/dist/encoding/integerStreamEncoder.d.ts +2 -1
  44. package/dist/encoding/integerStreamEncoder.js +52 -18
  45. package/dist/encoding/integerStreamEncoder.js.map +1 -1
  46. package/dist/encoding/propertyEncoder.js +9 -16
  47. package/dist/encoding/propertyEncoder.js.map +1 -1
  48. package/dist/encoding/stringEncoder.js +9 -42
  49. package/dist/encoding/stringEncoder.js.map +1 -1
  50. package/dist/metadata/tile/logicalStreamType.d.ts +5 -9
  51. package/dist/metadata/tile/logicalStreamType.js +1 -19
  52. package/dist/metadata/tile/logicalStreamType.js.map +1 -1
  53. package/dist/metadata/tile/physicalLevelTechnique.d.ts +1 -5
  54. package/dist/metadata/tile/physicalLevelTechnique.js +0 -4
  55. package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
  56. package/dist/metadata/tile/streamMetadataDecoder.d.ts +1 -1
  57. package/dist/metadata/tile/streamMetadataDecoder.js +9 -4
  58. package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
  59. package/dist/mltDecoder.js +25 -29
  60. package/dist/mltDecoder.js.map +1 -1
  61. package/dist/vector/constant/{intConstVector.d.ts → int32ConstVector.d.ts} +2 -2
  62. package/dist/vector/constant/int32ConstVector.js +10 -0
  63. package/dist/vector/constant/int32ConstVector.js.map +1 -0
  64. package/dist/vector/constant/{longConstVector.d.ts → int64ConstVector.d.ts} +2 -2
  65. package/dist/vector/constant/int64ConstVector.js +10 -0
  66. package/dist/vector/constant/int64ConstVector.js.map +1 -0
  67. package/dist/vector/dictionary/stringDictionaryVector.d.ts +1 -1
  68. package/dist/vector/dictionary/stringDictionaryVector.js +0 -1
  69. package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
  70. package/dist/vector/featureTable.d.ts +4 -4
  71. package/dist/vector/featureTable.js +9 -14
  72. package/dist/vector/featureTable.js.map +1 -1
  73. package/dist/vector/filter/flatSelectionVector.js +0 -2
  74. package/dist/vector/filter/flatSelectionVector.js.map +1 -1
  75. package/dist/vector/filter/sequenceSelectionVector.js +1 -5
  76. package/dist/vector/filter/sequenceSelectionVector.js.map +1 -1
  77. package/dist/vector/flat/bitVector.js +0 -2
  78. package/dist/vector/flat/bitVector.js.map +1 -1
  79. package/dist/vector/flat/booleanFlatVector.js +0 -1
  80. package/dist/vector/flat/booleanFlatVector.js.map +1 -1
  81. package/dist/vector/flat/{intFlatVector.d.ts → int32FlatVector.d.ts} +1 -1
  82. package/dist/vector/flat/{intFlatVector.js → int32FlatVector.js} +2 -2
  83. package/dist/vector/flat/int32FlatVector.js.map +1 -0
  84. package/dist/vector/flat/{longFlatVector.d.ts → int64FlatVector.d.ts} +1 -1
  85. package/dist/vector/flat/{longFlatVector.js → int64FlatVector.js} +2 -2
  86. package/dist/vector/flat/int64FlatVector.js.map +1 -0
  87. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +1 -1
  88. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +1 -7
  89. package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
  90. package/dist/vector/geometry/constGeometryVector.d.ts +3 -3
  91. package/dist/vector/geometry/constGeometryVector.js +0 -2
  92. package/dist/vector/geometry/constGeometryVector.js.map +1 -1
  93. package/dist/vector/geometry/constGpuVector.d.ts +2 -2
  94. package/dist/vector/geometry/constGpuVector.js +0 -2
  95. package/dist/vector/geometry/constGpuVector.js.map +1 -1
  96. package/dist/vector/geometry/flatGeometryVector.d.ts +3 -3
  97. package/dist/vector/geometry/flatGeometryVector.js +1 -5
  98. package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
  99. package/dist/vector/geometry/flatGpuVector.d.ts +2 -2
  100. package/dist/vector/geometry/flatGpuVector.js +0 -1
  101. package/dist/vector/geometry/flatGpuVector.js.map +1 -1
  102. package/dist/vector/geometry/geometryVector.d.ts +3 -3
  103. package/dist/vector/geometry/geometryVector.js +0 -5
  104. package/dist/vector/geometry/geometryVector.js.map +1 -1
  105. package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
  106. package/dist/vector/geometry/gpuVector.d.ts +4 -4
  107. package/dist/vector/geometry/gpuVector.js +0 -4
  108. package/dist/vector/geometry/gpuVector.js.map +1 -1
  109. package/dist/vector/geometry/topologyVector.d.ts +3 -3
  110. package/dist/vector/geometry/topologyVector.js.map +1 -1
  111. package/dist/vector/idVector.d.ts +8 -0
  112. package/dist/vector/idVector.js +2 -0
  113. package/dist/vector/idVector.js.map +1 -0
  114. package/dist/vector/sequence/{intSequenceVector.d.ts → int32SequenceVector.d.ts} +1 -1
  115. package/dist/vector/sequence/{intSequenceVector.js → int32SequenceVector.js} +2 -2
  116. package/dist/vector/sequence/int32SequenceVector.js.map +1 -0
  117. package/dist/vector/sequence/{longSequenceVector.d.ts → int64SequenceVector.d.ts} +1 -1
  118. package/dist/vector/sequence/{longSequenceVector.js → int64SequenceVector.js} +2 -2
  119. package/dist/vector/sequence/int64SequenceVector.js.map +1 -0
  120. package/dist/vector/sequence/sequenceVector.js +0 -1
  121. package/dist/vector/sequence/sequenceVector.js.map +1 -1
  122. package/dist/vector/variableSizeVector.js +0 -1
  123. package/dist/vector/variableSizeVector.js.map +1 -1
  124. package/dist/vector/vector.js +0 -4
  125. package/dist/vector/vector.js.map +1 -1
  126. package/package.json +7 -7
  127. package/dist/vector/constant/intConstVector.js +0 -10
  128. package/dist/vector/constant/intConstVector.js.map +0 -1
  129. package/dist/vector/constant/longConstVector.js +0 -10
  130. package/dist/vector/constant/longConstVector.js.map +0 -1
  131. package/dist/vector/flat/intFlatVector.js.map +0 -1
  132. package/dist/vector/flat/longFlatVector.js.map +0 -1
  133. package/dist/vector/intVector.d.ts +0 -8
  134. package/dist/vector/intVector.js +0 -2
  135. package/dist/vector/intVector.js.map +0 -1
  136. package/dist/vector/sequence/intSequenceVector.js.map +0 -1
  137. package/dist/vector/sequence/longSequenceVector.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { GeometryVector, type MortonSettings } from "./geometryVector";
2
2
  import { VertexBufferType } from "./vertexBufferType";
3
3
  import type { TopologyVector } from "../../vector/geometry/topologyVector";
4
- export declare function createConstGeometryVector(numGeometries: number, geometryType: number, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array): ConstGeometryVector;
5
- export declare function createMortonEncodedConstGeometryVector(numGeometries: number, geometryType: number, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array, mortonInfo: MortonSettings): ConstGeometryVector;
4
+ export declare function createConstGeometryVector(numGeometries: number, geometryType: number, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array): ConstGeometryVector;
5
+ export declare function createMortonEncodedConstGeometryVector(numGeometries: number, geometryType: number, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array, mortonInfo: MortonSettings): ConstGeometryVector;
6
6
  export declare class ConstGeometryVector extends GeometryVector {
7
7
  private readonly _numGeometries;
8
8
  private readonly _geometryType;
9
- constructor(_numGeometries: number, _geometryType: number, vertexBufferType: VertexBufferType, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array, mortonSettings?: MortonSettings);
9
+ constructor(_numGeometries: number, _geometryType: number, vertexBufferType: VertexBufferType, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array, mortonSettings?: MortonSettings);
10
10
  geometryType(_index: number): number;
11
11
  get numGeometries(): number;
12
12
  containsPolygonGeometry(): boolean;
@@ -8,8 +8,6 @@ export function createMortonEncodedConstGeometryVector(numGeometries, geometryTy
8
8
  return new ConstGeometryVector(numGeometries, geometryType, VertexBufferType.MORTON, topologyVector, vertexOffsets, vertexBuffer, mortonInfo);
9
9
  }
10
10
  export class ConstGeometryVector extends GeometryVector {
11
- _numGeometries;
12
- _geometryType;
13
11
  constructor(_numGeometries, _geometryType, vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings) {
14
12
  super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);
15
13
  this._numGeometries = _numGeometries;
@@ -1 +1 @@
1
- {"version":3,"file":"constGeometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/constGeometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,yBAAyB,CACrC,aAAqB,EACrB,YAAoB,EACpB,cAA8B,EAC9B,aAAyB,EACzB,YAAwB;IAExB,OAAO,IAAI,mBAAmB,CAC1B,aAAa,EACb,YAAY,EACZ,gBAAgB,CAAC,KAAK,EACtB,cAAc,EACd,aAAa,EACb,YAAY,CACf,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sCAAsC,CAClD,aAAqB,EACrB,YAAoB,EACpB,cAA8B,EAC9B,aAAyB,EACzB,YAAwB,EACxB,UAA0B;IAE1B,OAAO,IAAI,mBAAmB,CAC1B,aAAa,EACb,YAAY,EACZ,gBAAgB,CAAC,MAAM,EACvB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,CACb,CAAC;AACN,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAE9B;IACA;IAFrB,YACqB,cAAsB,EACtB,aAAqB,EACtC,gBAAkC,EAClC,cAA8B,EAC9B,aAAyB,EACzB,YAAwB,EACxB,cAA+B;QAE/B,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QARpE,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAQ1C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,YAAY,CAAC;IAC7G,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { GeometryVector, type MortonSettings } from \"./geometryVector\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport function createConstGeometryVector(\n numGeometries: number,\n geometryType: number,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n): ConstGeometryVector {\n return new ConstGeometryVector(\n numGeometries,\n geometryType,\n VertexBufferType.VEC_2,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n );\n}\n\nexport function createMortonEncodedConstGeometryVector(\n numGeometries: number,\n geometryType: number,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n mortonInfo: MortonSettings,\n): ConstGeometryVector {\n return new ConstGeometryVector(\n numGeometries,\n geometryType,\n VertexBufferType.MORTON,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n mortonInfo,\n );\n}\n\nexport class ConstGeometryVector extends GeometryVector {\n constructor(\n private readonly _numGeometries: number,\n private readonly _geometryType: number,\n vertexBufferType: VertexBufferType,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n mortonSettings?: MortonSettings,\n ) {\n super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);\n }\n\n geometryType(_index: number): number {\n return this._geometryType;\n }\n\n get numGeometries(): number {\n return this._numGeometries;\n }\n\n containsPolygonGeometry(): boolean {\n return this._geometryType === GEOMETRY_TYPE.POLYGON || this._geometryType === GEOMETRY_TYPE.MULTIPOLYGON;\n }\n\n containsSingleGeometryType(): boolean {\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"constGeometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/constGeometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,yBAAyB,CACrC,aAAqB,EACrB,YAAoB,EACpB,cAA8B,EAC9B,aAAsC,EACtC,YAAsC;IAEtC,OAAO,IAAI,mBAAmB,CAC1B,aAAa,EACb,YAAY,EACZ,gBAAgB,CAAC,KAAK,EACtB,cAAc,EACd,aAAa,EACb,YAAY,CACf,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sCAAsC,CAClD,aAAqB,EACrB,YAAoB,EACpB,cAA8B,EAC9B,aAAsC,EACtC,YAAsC,EACtC,UAA0B;IAE1B,OAAO,IAAI,mBAAmB,CAC1B,aAAa,EACb,YAAY,EACZ,gBAAgB,CAAC,MAAM,EACvB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,CACb,CAAC;AACN,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACnD,YACqB,cAAsB,EACtB,aAAqB,EACtC,gBAAkC,EAClC,cAA8B,EAC9B,aAAsC,EACtC,YAAsC,EACtC,cAA+B;QAE/B,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QARpE,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAQ1C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,aAAa,CAAC,YAAY,CAAC;IAC7G,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { GeometryVector, type MortonSettings } from \"./geometryVector\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport function createConstGeometryVector(\n numGeometries: number,\n geometryType: number,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n): ConstGeometryVector {\n return new ConstGeometryVector(\n numGeometries,\n geometryType,\n VertexBufferType.VEC_2,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n );\n}\n\nexport function createMortonEncodedConstGeometryVector(\n numGeometries: number,\n geometryType: number,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n mortonInfo: MortonSettings,\n): ConstGeometryVector {\n return new ConstGeometryVector(\n numGeometries,\n geometryType,\n VertexBufferType.MORTON,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n mortonInfo,\n );\n}\n\nexport class ConstGeometryVector extends GeometryVector {\n constructor(\n private readonly _numGeometries: number,\n private readonly _geometryType: number,\n vertexBufferType: VertexBufferType,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n mortonSettings?: MortonSettings,\n ) {\n super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);\n }\n\n geometryType(_index: number): number {\n return this._geometryType;\n }\n\n get numGeometries(): number {\n return this._numGeometries;\n }\n\n containsPolygonGeometry(): boolean {\n return this._geometryType === GEOMETRY_TYPE.POLYGON || this._geometryType === GEOMETRY_TYPE.MULTIPOLYGON;\n }\n\n containsSingleGeometryType(): boolean {\n return true;\n }\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  import { GpuVector } from "./gpuVector";
2
2
  import type { TopologyVector } from "./topologyVector";
3
- export declare function createConstGpuVector(numGeometries: number, geometryType: number, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector?: TopologyVector | null): GpuVector;
3
+ export declare function createConstGpuVector(numGeometries: number, geometryType: number, triangleOffsets: Uint32Array, indexBuffer: Uint32Array, vertexBuffer: Int32Array | Uint32Array, topologyVector?: TopologyVector): GpuVector;
4
4
  export declare class ConstGpuVector extends GpuVector {
5
5
  private readonly _numGeometries;
6
6
  private readonly _geometryType;
7
- constructor(_numGeometries: number, _geometryType: number, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector?: TopologyVector | null);
7
+ constructor(_numGeometries: number, _geometryType: number, triangleOffsets: Uint32Array, indexBuffer: Uint32Array, vertexBuffer: Int32Array | Uint32Array, topologyVector?: TopologyVector);
8
8
  geometryType(_index: number): number;
9
9
  get numGeometries(): number;
10
10
  containsSingleGeometryType(): boolean;
@@ -4,8 +4,6 @@ export function createConstGpuVector(numGeometries, geometryType, triangleOffset
4
4
  }
5
5
  //TODO: extend from GeometryVector -> make topology vector optional
6
6
  export class ConstGpuVector extends GpuVector {
7
- _numGeometries;
8
- _geometryType;
9
7
  constructor(_numGeometries, _geometryType, triangleOffsets, indexBuffer, vertexBuffer, topologyVector) {
10
8
  super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);
11
9
  this._numGeometries = _numGeometries;
@@ -1 +1 @@
1
- {"version":3,"file":"constGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/constGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,oBAAoB,CAChC,aAAqB,EACrB,YAAoB,EACpB,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAsC;IAEtC,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACvH,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,cAAe,SAAQ,SAAS;IAEpB;IACA;IAFrB,YACqB,cAAsB,EACtB,aAAqB,EACtC,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAsC;QAEtC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAPjD,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAO1C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { GpuVector } from \"./gpuVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport function createConstGpuVector(\n numGeometries: number,\n geometryType: number,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector?: TopologyVector | null,\n): GpuVector {\n return new ConstGpuVector(numGeometries, geometryType, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n}\n\n//TODO: extend from GeometryVector -> make topology vector optional\nexport class ConstGpuVector extends GpuVector {\n constructor(\n private readonly _numGeometries: number,\n private readonly _geometryType: number,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector?: TopologyVector | null,\n ) {\n super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n }\n\n geometryType(_index: number): number {\n return this._geometryType;\n }\n\n get numGeometries(): number {\n return this._numGeometries;\n }\n\n containsSingleGeometryType(): boolean {\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"constGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/constGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,oBAAoB,CAChC,aAAqB,EACrB,YAAoB,EACpB,eAA4B,EAC5B,WAAwB,EACxB,YAAsC,EACtC,cAA+B;IAE/B,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACvH,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,cAAe,SAAQ,SAAS;IACzC,YACqB,cAAsB,EACtB,aAAqB,EACtC,eAA4B,EAC5B,WAAwB,EACxB,YAAsC,EACtC,cAA+B;QAE/B,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAPjD,mBAAc,GAAd,cAAc,CAAQ;QACtB,kBAAa,GAAb,aAAa,CAAQ;IAO1C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ","sourcesContent":["import { GpuVector } from \"./gpuVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport function createConstGpuVector(\n numGeometries: number,\n geometryType: number,\n triangleOffsets: Uint32Array,\n indexBuffer: Uint32Array,\n vertexBuffer: Int32Array | Uint32Array,\n topologyVector?: TopologyVector,\n): GpuVector {\n return new ConstGpuVector(numGeometries, geometryType, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n}\n\n//TODO: extend from GeometryVector -> make topology vector optional\nexport class ConstGpuVector extends GpuVector {\n constructor(\n private readonly _numGeometries: number,\n private readonly _geometryType: number,\n triangleOffsets: Uint32Array,\n indexBuffer: Uint32Array,\n vertexBuffer: Int32Array | Uint32Array,\n topologyVector?: TopologyVector,\n ) {\n super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n }\n\n geometryType(_index: number): number {\n return this._geometryType;\n }\n\n get numGeometries(): number {\n return this._numGeometries;\n }\n\n containsSingleGeometryType(): boolean {\n return true;\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { GeometryVector, type MortonSettings } from "./geometryVector";
2
2
  import { VertexBufferType } from "./vertexBufferType";
3
3
  import type { TopologyVector } from "../../vector/geometry/topologyVector";
4
- export declare function createFlatGeometryVector(geometryTypes: Int32Array, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array): FlatGeometryVector;
5
- export declare function createFlatGeometryVectorMortonEncoded(geometryTypes: Int32Array, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array, mortonInfo: MortonSettings): FlatGeometryVector;
4
+ export declare function createFlatGeometryVector(geometryTypes: Uint32Array, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array): FlatGeometryVector;
5
+ export declare function createFlatGeometryVectorMortonEncoded(geometryTypes: Uint32Array, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array, mortonInfo: MortonSettings): FlatGeometryVector;
6
6
  export declare class FlatGeometryVector extends GeometryVector {
7
7
  private readonly _geometryTypes;
8
- constructor(vertexBufferType: VertexBufferType, _geometryTypes: Int32Array, topologyVector: TopologyVector, vertexOffsets: Int32Array, vertexBuffer: Int32Array, mortonSettings?: MortonSettings);
8
+ constructor(vertexBufferType: VertexBufferType, _geometryTypes: Uint32Array, topologyVector: TopologyVector, vertexOffsets: Uint32Array | undefined, vertexBuffer: Int32Array | Uint32Array, mortonSettings?: MortonSettings);
9
9
  geometryType(index: number): number;
10
10
  get numGeometries(): number;
11
11
  containsPolygonGeometry(): boolean;
@@ -5,14 +5,10 @@ export function createFlatGeometryVector(geometryTypes, topologyVector, vertexOf
5
5
  return new FlatGeometryVector(VertexBufferType.VEC_2, geometryTypes, topologyVector, vertexOffsets, vertexBuffer);
6
6
  }
7
7
  export function createFlatGeometryVectorMortonEncoded(geometryTypes, topologyVector, vertexOffsets, vertexBuffer, mortonInfo) {
8
- //TODO: refactor to use unsigned integers
9
8
  return new FlatGeometryVector(VertexBufferType.MORTON, geometryTypes, topologyVector, vertexOffsets, vertexBuffer, mortonInfo);
10
9
  }
11
10
  export class FlatGeometryVector extends GeometryVector {
12
- _geometryTypes;
13
- constructor(vertexBufferType,
14
- //TODO: refactor -> use UInt8Array
15
- _geometryTypes, topologyVector, vertexOffsets, vertexBuffer, mortonSettings) {
11
+ constructor(vertexBufferType, _geometryTypes, topologyVector, vertexOffsets, vertexBuffer, mortonSettings) {
16
12
  super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);
17
13
  this._geometryTypes = _geometryTypes;
18
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flatGeometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGeometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,wBAAwB,CACpC,aAAyB,EACzB,cAA8B,EAC9B,aAAyB,EACzB,YAAwB;IAExB,OAAO,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AACtH,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,aAAyB,EACzB,cAA8B,EAC9B,aAAyB,EACzB,YAAwB,EACxB,UAA0B;IAE1B,yCAAyC;IACzC,OAAO,IAAI,kBAAkB,CACzB,gBAAgB,CAAC,MAAM,EACvB,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,CACb,CAAC;AACN,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAI7B;IAHrB,YACI,gBAAkC;IAClC,kCAAkC;IACjB,cAA0B,EAC3C,cAA8B,EAC9B,aAAyB,EACzB,YAAwB,EACxB,cAA+B;QAE/B,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QANpE,mBAAc,GAAd,cAAc,CAAY;IAO/C,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,uBAAuB;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBACxG,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,0BAA0B;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ","sourcesContent":["import { GeometryVector, type MortonSettings } from \"./geometryVector\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport function createFlatGeometryVector(\n geometryTypes: Int32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n): FlatGeometryVector {\n return new FlatGeometryVector(VertexBufferType.VEC_2, geometryTypes, topologyVector, vertexOffsets, vertexBuffer);\n}\n\nexport function createFlatGeometryVectorMortonEncoded(\n geometryTypes: Int32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n mortonInfo: MortonSettings,\n): FlatGeometryVector {\n //TODO: refactor to use unsigned integers\n return new FlatGeometryVector(\n VertexBufferType.MORTON,\n geometryTypes,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n mortonInfo,\n );\n}\n\nexport class FlatGeometryVector extends GeometryVector {\n constructor(\n vertexBufferType: VertexBufferType,\n //TODO: refactor -> use UInt8Array\n private readonly _geometryTypes: Int32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Int32Array,\n vertexBuffer: Int32Array,\n mortonSettings?: MortonSettings,\n ) {\n super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);\n }\n\n geometryType(index: number): number {\n return this._geometryTypes[index];\n }\n\n get numGeometries(): number {\n return this._geometryTypes.length;\n }\n\n containsPolygonGeometry(): boolean {\n for (let i = 0; i < this.numGeometries; i++) {\n if (this.geometryType(i) === GEOMETRY_TYPE.POLYGON || this.geometryType(i) === GEOMETRY_TYPE.MULTIPOLYGON) {\n return true;\n }\n }\n return false;\n }\n\n containsSingleGeometryType(): boolean {\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"flatGeometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGeometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,wBAAwB,CACpC,aAA0B,EAC1B,cAA8B,EAC9B,aAAsC,EACtC,YAAsC;IAEtC,OAAO,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AACtH,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,aAA0B,EAC1B,cAA8B,EAC9B,aAAsC,EACtC,YAAsC,EACtC,UAA0B;IAE1B,OAAO,IAAI,kBAAkB,CACzB,gBAAgB,CAAC,MAAM,EACvB,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,CACb,CAAC;AACN,CAAC;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAClD,YACI,gBAAkC,EACjB,cAA2B,EAC5C,cAA8B,EAC9B,aAAsC,EACtC,YAAsC,EACtC,cAA+B;QAE/B,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QANpE,mBAAc,GAAd,cAAc,CAAa;IAOhD,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,uBAAuB;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBACxG,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,0BAA0B;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ","sourcesContent":["import { GeometryVector, type MortonSettings } from \"./geometryVector\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport function createFlatGeometryVector(\n geometryTypes: Uint32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n): FlatGeometryVector {\n return new FlatGeometryVector(VertexBufferType.VEC_2, geometryTypes, topologyVector, vertexOffsets, vertexBuffer);\n}\n\nexport function createFlatGeometryVectorMortonEncoded(\n geometryTypes: Uint32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n mortonInfo: MortonSettings,\n): FlatGeometryVector {\n return new FlatGeometryVector(\n VertexBufferType.MORTON,\n geometryTypes,\n topologyVector,\n vertexOffsets,\n vertexBuffer,\n mortonInfo,\n );\n}\n\nexport class FlatGeometryVector extends GeometryVector {\n constructor(\n vertexBufferType: VertexBufferType,\n private readonly _geometryTypes: Uint32Array,\n topologyVector: TopologyVector,\n vertexOffsets: Uint32Array | undefined,\n vertexBuffer: Int32Array | Uint32Array,\n mortonSettings?: MortonSettings,\n ) {\n super(vertexBufferType, topologyVector, vertexOffsets, vertexBuffer, mortonSettings);\n }\n\n geometryType(index: number): number {\n return this._geometryTypes[index];\n }\n\n get numGeometries(): number {\n return this._geometryTypes.length;\n }\n\n containsPolygonGeometry(): boolean {\n for (let i = 0; i < this.numGeometries; i++) {\n if (this.geometryType(i) === GEOMETRY_TYPE.POLYGON || this.geometryType(i) === GEOMETRY_TYPE.MULTIPOLYGON) {\n return true;\n }\n }\n return false;\n }\n\n containsSingleGeometryType(): boolean {\n return false;\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { GpuVector } from "./gpuVector";
2
2
  import type { TopologyVector } from "./topologyVector";
3
- export declare function createFlatGpuVector(geometryTypes: Int32Array, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector?: TopologyVector | null): GpuVector;
3
+ export declare function createFlatGpuVector(geometryTypes: Uint32Array, triangleOffsets: Uint32Array, indexBuffer: Uint32Array, vertexBuffer: Int32Array | Uint32Array, topologyVector?: TopologyVector): GpuVector;
4
4
  export declare class FlatGpuVector extends GpuVector {
5
5
  private readonly _geometryTypes;
6
- constructor(_geometryTypes: Int32Array, triangleOffsets: Uint32Array, indexBuffer: Int32Array, vertexBuffer: Int32Array, topologyVector: TopologyVector | null);
6
+ constructor(_geometryTypes: Uint32Array, triangleOffsets: Uint32Array, indexBuffer: Uint32Array, vertexBuffer: Int32Array | Uint32Array, topologyVector?: TopologyVector);
7
7
  geometryType(index: number): number;
8
8
  get numGeometries(): number;
9
9
  containsSingleGeometryType(): boolean;
@@ -4,7 +4,6 @@ export function createFlatGpuVector(geometryTypes, triangleOffsets, indexBuffer,
4
4
  }
5
5
  //TODO: extend from GeometryVector -> make topology vector optional
6
6
  export class FlatGpuVector extends GpuVector {
7
- _geometryTypes;
8
7
  constructor(_geometryTypes, triangleOffsets, indexBuffer, vertexBuffer, topologyVector) {
9
8
  super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);
10
9
  this._geometryTypes = _geometryTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"flatGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,mBAAmB,CAC/B,aAAyB,EACzB,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAsC;IAEtC,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACxG,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,aAAc,SAAQ,SAAS;IAEnB;IADrB,YACqB,cAA0B,EAC3C,eAA4B,EAC5B,WAAuB,EACvB,YAAwB,EACxB,cAAqC;QAErC,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QANjD,mBAAc,GAAd,cAAc,CAAY;IAO/C,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,0BAA0B;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ","sourcesContent":["import { GpuVector } from \"./gpuVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport function createFlatGpuVector(\n geometryTypes: Int32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector?: TopologyVector | null,\n): GpuVector {\n return new FlatGpuVector(geometryTypes, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n}\n\n//TODO: extend from GeometryVector -> make topology vector optional\nexport class FlatGpuVector extends GpuVector {\n constructor(\n private readonly _geometryTypes: Int32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Int32Array,\n vertexBuffer: Int32Array,\n topologyVector: TopologyVector | null,\n ) {\n super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n }\n\n geometryType(index: number): number {\n return this._geometryTypes[index];\n }\n\n get numGeometries(): number {\n return this._geometryTypes.length;\n }\n\n containsSingleGeometryType(): boolean {\n return false;\n }\n}\n"]}
1
+ {"version":3,"file":"flatGpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/flatGpuVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,mBAAmB,CAC/B,aAA0B,EAC1B,eAA4B,EAC5B,WAAwB,EACxB,YAAsC,EACtC,cAA+B;IAE/B,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACxG,CAAC;AAED,mEAAmE;AACnE,MAAM,OAAO,aAAc,SAAQ,SAAS;IACxC,YACqB,cAA2B,EAC5C,eAA4B,EAC5B,WAAwB,EACxB,YAAsC,EACtC,cAA+B;QAE/B,KAAK,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QANjD,mBAAc,GAAd,cAAc,CAAa;IAOhD,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,0BAA0B;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ","sourcesContent":["import { GpuVector } from \"./gpuVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport function createFlatGpuVector(\n geometryTypes: Uint32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Uint32Array,\n vertexBuffer: Int32Array | Uint32Array,\n topologyVector?: TopologyVector,\n): GpuVector {\n return new FlatGpuVector(geometryTypes, triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n}\n\n//TODO: extend from GeometryVector -> make topology vector optional\nexport class FlatGpuVector extends GpuVector {\n constructor(\n private readonly _geometryTypes: Uint32Array,\n triangleOffsets: Uint32Array,\n indexBuffer: Uint32Array,\n vertexBuffer: Int32Array | Uint32Array,\n topologyVector?: TopologyVector,\n ) {\n super(triangleOffsets, indexBuffer, vertexBuffer, topologyVector);\n }\n\n geometryType(index: number): number {\n return this._geometryTypes[index];\n }\n\n get numGeometries(): number {\n return this._geometryTypes.length;\n }\n\n containsSingleGeometryType(): boolean {\n return false;\n }\n}\n"]}
@@ -17,11 +17,11 @@ export declare abstract class GeometryVector {
17
17
  private readonly _vertexOffsets;
18
18
  private readonly _vertexBuffer;
19
19
  private readonly _mortonSettings?;
20
- protected constructor(_vertexBufferType: VertexBufferType, _topologyVector: TopologyVector, _vertexOffsets: Int32Array, _vertexBuffer: Int32Array, _mortonSettings?: MortonSettings);
20
+ protected constructor(_vertexBufferType: VertexBufferType, _topologyVector: TopologyVector, _vertexOffsets: Uint32Array | undefined, _vertexBuffer: Int32Array | Uint32Array, _mortonSettings?: MortonSettings);
21
21
  get vertexBufferType(): VertexBufferType;
22
22
  get topologyVector(): TopologyVector;
23
- get vertexOffsets(): Int32Array;
24
- get vertexBuffer(): Int32Array;
23
+ get vertexOffsets(): Uint32Array | undefined;
24
+ get vertexBuffer(): Int32Array | Uint32Array;
25
25
  getSimpleEncodedVertex(index: number): [number, number];
26
26
  getVertex(index: number): [number, number];
27
27
  getGeometries(): CoordinatesArray[];
@@ -1,11 +1,6 @@
1
1
  import { convertGeometryVector } from "./geometryVectorConverter";
2
2
  import { decodeZOrderCurve } from "./zOrderCurve";
3
3
  export class GeometryVector {
4
- _vertexBufferType;
5
- _topologyVector;
6
- _vertexOffsets;
7
- _vertexBuffer;
8
- _mortonSettings;
9
4
  constructor(_vertexBufferType, _topologyVector, _vertexOffsets, _vertexBuffer, _mortonSettings) {
10
5
  this._vertexBufferType = _vertexBufferType;
11
6
  this._topologyVector = _topologyVector;
@@ -1 +1 @@
1
- {"version":3,"file":"geometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/geometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAkBlD,MAAM,OAAgB,cAAc;IAEX;IACA;IACA;IACA;IACA;IALrB,YACqB,iBAAmC,EACnC,eAA+B,EAC/B,cAA0B,EAC1B,aAAyB,EACzB,eAAgC;QAJhC,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,oBAAe,GAAf,eAAe,CAAgB;QAC/B,mBAAc,GAAd,cAAc,CAAY;QAC1B,kBAAa,GAAb,aAAa,CAAY;QACzB,oBAAe,GAAf,eAAe,CAAiB;IAClD,CAAC;IAEJ,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;uFACmF;IACnF,sBAAsB,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kDAAkD;IAClD,SAAS,CAAC,KAAa;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,yEAAyE;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5D,sFAAsF;YACtF,MAAM,MAAM,GAAG,iBAAiB,CAC5B,mBAAmB,EACnB,IAAI,CAAC,cAAc,CAAC,OAAO,EAC3B,IAAI,CAAC,cAAc,CAAC,eAAe,CACtC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa;QACT,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;CASJ","sourcesContent":["import { convertGeometryVector } from \"./geometryVectorConverter\";\nimport { decodeZOrderCurve } from \"./zOrderCurve\";\nimport type Point from \"@mapbox/point-geometry\";\nimport type { GEOMETRY_TYPE } from \"./geometryType\";\nimport type { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport type CoordinatesArray = Array<Array<Point>>;\n\nexport type Geometry = {\n coordinates: CoordinatesArray;\n type: GEOMETRY_TYPE;\n};\n\nexport interface MortonSettings {\n numBits: number;\n coordinateShift: number;\n}\n\nexport abstract class GeometryVector {\n protected constructor(\n private readonly _vertexBufferType: VertexBufferType,\n private readonly _topologyVector: TopologyVector,\n private readonly _vertexOffsets: Int32Array,\n private readonly _vertexBuffer: Int32Array,\n private readonly _mortonSettings?: MortonSettings,\n ) {}\n\n get vertexBufferType(): VertexBufferType {\n return this._vertexBufferType;\n }\n\n get topologyVector(): TopologyVector {\n return this._topologyVector;\n }\n\n get vertexOffsets(): Int32Array {\n return this._vertexOffsets;\n }\n\n get vertexBuffer(): Int32Array {\n return this._vertexBuffer;\n }\n\n /* Allows faster access to the vertices since morton encoding is currently not used in the POC. Morton encoding\n will be used after adapting the shader to decode the morton codes on the GPU. */\n getSimpleEncodedVertex(index: number): [number, number] {\n const offset = this.vertexOffsets ? this.vertexOffsets[index] * 2 : index * 2;\n const x = this.vertexBuffer[offset];\n const y = this.vertexBuffer[offset + 1];\n return [x, y];\n }\n\n //TODO: add scaling information to the constructor\n getVertex(index: number): [number, number] {\n if (this.vertexOffsets && this.mortonSettings) {\n //TODO: move decoding of the morton codes on the GPU in the vertex shader\n const vertexOffset = this.vertexOffsets[index];\n const mortonEncodedVertex = this.vertexBuffer[vertexOffset];\n //TODO: improve performance -> inline calculation and move to decoding of VertexBuffer\n const vertex = decodeZOrderCurve(\n mortonEncodedVertex,\n this.mortonSettings.numBits,\n this.mortonSettings.coordinateShift,\n );\n return [vertex.x, vertex.y];\n }\n\n const offset = this.vertexOffsets ? this.vertexOffsets[index] * 2 : index * 2;\n const x = this.vertexBuffer[offset];\n const y = this.vertexBuffer[offset + 1];\n return [x, y];\n }\n\n getGeometries(): CoordinatesArray[] {\n return convertGeometryVector(this);\n }\n\n get mortonSettings(): MortonSettings | undefined {\n return this._mortonSettings;\n }\n\n abstract containsPolygonGeometry(): boolean;\n\n abstract geometryType(index: number): number;\n\n abstract get numGeometries(): number;\n\n abstract containsSingleGeometryType(): boolean;\n}\n"]}
1
+ {"version":3,"file":"geometryVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/geometryVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAkBlD,MAAM,OAAgB,cAAc;IAChC,YACqB,iBAAmC,EACnC,eAA+B,EAC/B,cAAuC,EACvC,aAAuC,EACvC,eAAgC;QAJhC,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,oBAAe,GAAf,eAAe,CAAgB;QAC/B,mBAAc,GAAd,cAAc,CAAyB;QACvC,kBAAa,GAAb,aAAa,CAA0B;QACvC,oBAAe,GAAf,eAAe,CAAiB;IAClD,CAAC;IAEJ,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;uFACmF;IACnF,sBAAsB,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kDAAkD;IAClD,SAAS,CAAC,KAAa;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,yEAAyE;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5D,sFAAsF;YACtF,MAAM,MAAM,GAAG,iBAAiB,CAC5B,mBAAmB,EACnB,IAAI,CAAC,cAAc,CAAC,OAAO,EAC3B,IAAI,CAAC,cAAc,CAAC,eAAe,CACtC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,aAAa;QACT,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;CASJ","sourcesContent":["import { convertGeometryVector } from \"./geometryVectorConverter\";\nimport { decodeZOrderCurve } from \"./zOrderCurve\";\nimport type Point from \"@mapbox/point-geometry\";\nimport type { GEOMETRY_TYPE } from \"./geometryType\";\nimport type { VertexBufferType } from \"./vertexBufferType\";\nimport type { TopologyVector } from \"../../vector/geometry/topologyVector\";\n\nexport type CoordinatesArray = Array<Array<Point>>;\n\nexport type Geometry = {\n coordinates: CoordinatesArray;\n type: GEOMETRY_TYPE;\n};\n\nexport interface MortonSettings {\n numBits: number;\n coordinateShift: number;\n}\n\nexport abstract class GeometryVector {\n protected constructor(\n private readonly _vertexBufferType: VertexBufferType,\n private readonly _topologyVector: TopologyVector,\n private readonly _vertexOffsets: Uint32Array | undefined,\n private readonly _vertexBuffer: Int32Array | Uint32Array,\n private readonly _mortonSettings?: MortonSettings,\n ) {}\n\n get vertexBufferType(): VertexBufferType {\n return this._vertexBufferType;\n }\n\n get topologyVector(): TopologyVector {\n return this._topologyVector;\n }\n\n get vertexOffsets(): Uint32Array | undefined {\n return this._vertexOffsets;\n }\n\n get vertexBuffer(): Int32Array | Uint32Array {\n return this._vertexBuffer;\n }\n\n /* Allows faster access to the vertices since morton encoding is currently not used in the POC. Morton encoding\n will be used after adapting the shader to decode the morton codes on the GPU. */\n getSimpleEncodedVertex(index: number): [number, number] {\n const offset = this.vertexOffsets ? this.vertexOffsets[index] * 2 : index * 2;\n const x = this.vertexBuffer[offset];\n const y = this.vertexBuffer[offset + 1];\n return [x, y];\n }\n\n //TODO: add scaling information to the constructor\n getVertex(index: number): [number, number] {\n if (this.vertexOffsets && this.mortonSettings) {\n //TODO: move decoding of the morton codes on the GPU in the vertex shader\n const vertexOffset = this.vertexOffsets[index];\n const mortonEncodedVertex = this.vertexBuffer[vertexOffset];\n //TODO: improve performance -> inline calculation and move to decoding of VertexBuffer\n const vertex = decodeZOrderCurve(\n mortonEncodedVertex,\n this.mortonSettings.numBits,\n this.mortonSettings.coordinateShift,\n );\n return [vertex.x, vertex.y];\n }\n\n const offset = this.vertexOffsets ? this.vertexOffsets[index] * 2 : index * 2;\n const x = this.vertexBuffer[offset];\n const y = this.vertexBuffer[offset + 1];\n return [x, y];\n }\n\n getGeometries(): CoordinatesArray[] {\n return convertGeometryVector(this);\n }\n\n get mortonSettings(): MortonSettings | undefined {\n return this._mortonSettings;\n }\n\n abstract containsPolygonGeometry(): boolean;\n\n abstract geometryType(index: number): number;\n\n abstract get numGeometries(): number;\n\n abstract containsSingleGeometryType(): boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"geometryVectorConverter.js","sourceRoot":"","sources":["../../../src/vector/geometry/geometryVectorConverter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { GeometryVector, MortonSettings, CoordinatesArray } from \"./geometryVector\";\nimport { decodeZOrderCurve } from \"./zOrderCurve\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport Point from \"@mapbox/point-geometry\";\n\nexport function convertGeometryVector(geometryVector: GeometryVector): CoordinatesArray[] {\n const geometries: CoordinatesArray[] = new Array(geometryVector.numGeometries);\n let partOffsetCounter = 1;\n let ringOffsetsCounter = 1;\n let geometryOffsetsCounter = 1;\n let geometryCounter = 0;\n let vertexBufferOffset = 0;\n let vertexOffsetsOffset = 0;\n\n const mortonSettings = geometryVector.mortonSettings;\n const topologyVector = geometryVector.topologyVector;\n const geometryOffsets = topologyVector.geometryOffsets;\n const partOffsets = topologyVector.partOffsets;\n const ringOffsets = topologyVector.ringOffsets;\n const vertexOffsets = geometryVector.vertexOffsets;\n const nonOffset = !vertexOffsets || vertexOffsets.length === 0;\n\n const containsPolygon = geometryVector.containsPolygonGeometry();\n const vertexBuffer = geometryVector.vertexBuffer;\n\n for (let i = 0; i < geometryVector.numGeometries; i++) {\n const geometryType = geometryVector.geometryType(i);\n switch (geometryType) {\n case GEOMETRY_TYPE.POINT:\n {\n let x: number;\n let y: number;\n if (nonOffset) {\n x = vertexBuffer[vertexBufferOffset++];\n y = vertexBuffer[vertexBufferOffset++];\n } else if (geometryVector.vertexBufferType === VertexBufferType.MORTON) {\n const offset = vertexOffsets[vertexOffsetsOffset++];\n const mortonCode = vertexBuffer[offset];\n const vertex = decodeZOrderCurve(\n mortonCode,\n mortonSettings.numBits,\n mortonSettings.coordinateShift,\n );\n x = vertex.x;\n y = vertex.y;\n } else {\n const offset = vertexOffsets[vertexOffsetsOffset++] * 2;\n x = vertexBuffer[offset];\n y = vertexBuffer[offset + 1];\n }\n geometries[geometryCounter++] = [[new Point(x, y)]];\n if (geometryOffsets) geometryOffsetsCounter++;\n if (partOffsets) partOffsetCounter++;\n if (ringOffsets) ringOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOINT:\n {\n const numPoints =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const points: Point[] = new Array(numPoints);\n if (nonOffset) {\n for (let j = 0; j < numPoints; j++) {\n const x = vertexBuffer[vertexBufferOffset++];\n const y = vertexBuffer[vertexBufferOffset++];\n points[j] = new Point(x, y);\n }\n } else {\n for (let j = 0; j < numPoints; j++) {\n const offset = vertexOffsets[vertexOffsetsOffset++] * 2;\n const x = vertexBuffer[offset];\n const y = vertexBuffer[offset + 1];\n points[j] = new Point(x, y);\n }\n }\n geometries[geometryCounter++] = points.map((point) => [point]);\n // MULTIPOINT must increment offset counters like POINT does\n partOffsetCounter += numPoints;\n ringOffsetsCounter += numPoints;\n }\n break;\n case GEOMETRY_TYPE.LINESTRING:\n {\n let numVertices: number;\n if (containsPolygon) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n } else {\n numVertices = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n }\n partOffsetCounter++;\n\n let vertices: Point[];\n if (nonOffset) {\n vertices = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, false);\n vertexBufferOffset += numVertices * 2;\n } else {\n vertices = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n false,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n\n geometries[geometryCounter++] = [vertices];\n\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.POLYGON:\n {\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n const rings: CoordinatesArray = new Array(numRings - 1);\n let shell: Point[];\n let numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n\n if (nonOffset) {\n shell = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n for (let j = 0; j < rings.length; j++) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n rings[j] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n }\n } else {\n shell = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n for (let j = 0; j < rings.length; j++) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n rings[j] = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n }\n geometries[geometryCounter++] = [shell].concat(rings);\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTILINESTRING:\n {\n const numLineStrings =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const lineStrings: CoordinatesArray = new Array(numLineStrings);\n for (let j = 0; j < numLineStrings; j++) {\n let numVertices: number;\n if (containsPolygon) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n } else {\n numVertices = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n }\n partOffsetCounter++;\n if (nonOffset) {\n lineStrings[j] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, false);\n vertexBufferOffset += numVertices * 2;\n } else {\n const vertices = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n false,\n mortonSettings,\n );\n lineStrings[j] = vertices;\n vertexOffsetsOffset += numVertices;\n }\n }\n geometries[geometryCounter++] = lineStrings;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOLYGON:\n {\n const numPolygons =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const polygons: CoordinatesArray[] = new Array(numPolygons);\n for (let j = 0; j < numPolygons; j++) {\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n let shell: Point[];\n const rings: CoordinatesArray = new Array(numRings - 1);\n const numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n if (nonOffset) {\n shell = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n } else {\n shell = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n for (let k = 0; k < rings.length; k++) {\n const numRingVertices =\n ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n if (nonOffset) {\n rings[k] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numRingVertices, true);\n vertexBufferOffset += numRingVertices * 2;\n } else {\n rings[k] = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numRingVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numRingVertices;\n }\n }\n polygons[j] = [shell].concat(rings);\n }\n geometries[geometryCounter++] = polygons.flat();\n }\n break;\n default:\n throw new Error(\"The specified geometry type is currently not supported.\");\n }\n }\n\n return geometries;\n}\n\nfunction decodeDictionaryEncodedLineStringOrRing(\n vertexBufferType: VertexBufferType,\n vertexBuffer: Int32Array,\n vertexOffsets: Int32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n mortonSettings: MortonSettings,\n): Point[] {\n if (vertexBufferType === VertexBufferType.MORTON) {\n return decodeMortonDictionaryEncodedLineString(\n vertexBuffer,\n vertexOffsets,\n vertexOffset,\n numVertices,\n closeLineString,\n mortonSettings,\n );\n } else {\n return decodeDictionaryEncodedLineString(\n vertexBuffer,\n vertexOffsets,\n vertexOffset,\n numVertices,\n closeLineString,\n );\n }\n}\n\nfunction getLineStringOrRing(\n vertexBuffer: Int32Array,\n startIndex: number,\n numVertices: number,\n closeLineString: boolean,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices * 2; i += 2) {\n const x = vertexBuffer[startIndex + i];\n const y = vertexBuffer[startIndex + i + 1];\n vertices[i / 2] = new Point(x, y);\n }\n\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n return vertices;\n}\n\nfunction decodeDictionaryEncodedLineString(\n vertexBuffer: Int32Array,\n vertexOffsets: Int32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices * 2; i += 2) {\n const offset = vertexOffsets[vertexOffset + i / 2] * 2;\n const x = vertexBuffer[offset];\n const y = vertexBuffer[offset + 1];\n vertices[i / 2] = new Point(x, y);\n }\n\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n return vertices;\n}\n\nfunction decodeMortonDictionaryEncodedLineString(\n vertexBuffer: Int32Array,\n vertexOffsets: Int32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n mortonSettings: MortonSettings,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices; i++) {\n const offset = vertexOffsets[vertexOffset + i];\n const mortonEncodedVertex = vertexBuffer[offset];\n const vertex = decodeZOrderCurve(mortonEncodedVertex, mortonSettings.numBits, mortonSettings.coordinateShift);\n vertices[i] = new Point(vertex.x, vertex.y);\n }\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n\n return vertices;\n}\n"]}
1
+ {"version":3,"file":"geometryVectorConverter.js","sourceRoot":"","sources":["../../../src/vector/geometry/geometryVectorConverter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAE3C,MAAM,UAAU,qBAAqB,CAAC,cAA8B;IAChE,MAAM,UAAU,GAAuB,IAAI,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/E,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;IACrD,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;IACrD,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC;IACvD,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;IAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;IAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAG,cAAc,CAAC,uBAAuB,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACpD,QAAQ,YAAY,EAAE,CAAC;YACnB,KAAK,aAAa,CAAC,KAAK;gBACpB,CAAC;oBACG,IAAI,CAAS,CAAC;oBACd,IAAI,CAAS,CAAC;oBACd,IAAI,SAAS,EAAE,CAAC;wBACZ,CAAC,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;wBACvC,CAAC,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;oBAC3C,CAAC;yBAAM,IAAI,cAAc,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;wBACrE,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;wBACpD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;wBACxC,MAAM,MAAM,GAAG,iBAAiB,CAC5B,UAAU,EACV,cAAc,CAAC,OAAO,EACtB,cAAc,CAAC,eAAe,CACjC,CAAC;wBACF,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;wBACb,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACJ,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC;wBACxD,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;wBACzB,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC;oBACD,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,eAAe;wBAAE,sBAAsB,EAAE,CAAC;oBAC9C,IAAI,WAAW;wBAAE,iBAAiB,EAAE,CAAC;oBACrC,IAAI,WAAW;wBAAE,kBAAkB,EAAE,CAAC;gBAC1C,CAAC;gBACD,MAAM;YACV,KAAK,aAAa,CAAC,UAAU;gBACzB,CAAC;oBACG,MAAM,SAAS,GACX,eAAe,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;oBAC1F,sBAAsB,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAY,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,SAAS,EAAE,CAAC;wBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjC,MAAM,CAAC,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;4BAC7C,MAAM,CAAC,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;4BAC7C,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjC,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC;4BACxD,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;4BAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChC,CAAC;oBACL,CAAC;oBACD,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/D,4DAA4D;oBAC5D,iBAAiB,IAAI,SAAS,CAAC;oBAC/B,kBAAkB,IAAI,SAAS,CAAC;gBACpC,CAAC;gBACD,MAAM;YACV,KAAK,aAAa,CAAC,UAAU;gBACzB,CAAC;oBACG,IAAI,WAAmB,CAAC;oBACxB,IAAI,eAAe,EAAE,CAAC;wBAClB,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;wBACpF,kBAAkB,EAAE,CAAC;oBACzB,CAAC;yBAAM,CAAC;wBACJ,WAAW,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;oBACtF,CAAC;oBACD,iBAAiB,EAAE,CAAC;oBAEpB,IAAI,QAAiB,CAAC;oBACtB,IAAI,SAAS,EAAE,CAAC;wBACZ,QAAQ,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;wBACrF,kBAAkB,IAAI,WAAW,GAAG,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACJ,QAAQ,GAAG,uCAAuC,CAC9C,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,cAAc,CACjB,CAAC;wBACF,mBAAmB,IAAI,WAAW,CAAC;oBACvC,CAAC;oBAED,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE3C,IAAI,eAAe;wBAAE,sBAAsB,EAAE,CAAC;gBAClD,CAAC;gBACD,MAAM;YACV,KAAK,aAAa,CAAC,OAAO;gBACtB,CAAC;oBACG,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;oBACrF,iBAAiB,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAqB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACxD,IAAI,KAAc,CAAC;oBACnB,IAAI,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;oBACxF,kBAAkB,EAAE,CAAC;oBAErB,IAAI,SAAS,EAAE,CAAC;wBACZ,KAAK,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wBACjF,kBAAkB,IAAI,WAAW,GAAG,CAAC,CAAC;wBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACpC,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;4BACpF,kBAAkB,EAAE,CAAC;4BACrB,KAAK,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;4BACpF,kBAAkB,IAAI,WAAW,GAAG,CAAC,CAAC;wBAC1C,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,KAAK,GAAG,uCAAuC,CAC3C,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,IAAI,EACJ,cAAc,CACjB,CAAC;wBACF,mBAAmB,IAAI,WAAW,CAAC;wBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACpC,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;4BACpF,kBAAkB,EAAE,CAAC;4BACrB,KAAK,CAAC,CAAC,CAAC,GAAG,uCAAuC,CAC9C,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,IAAI,EACJ,cAAc,CACjB,CAAC;4BACF,mBAAmB,IAAI,WAAW,CAAC;wBACvC,CAAC;oBACL,CAAC;oBACD,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACtD,IAAI,eAAe;wBAAE,sBAAsB,EAAE,CAAC;gBAClD,CAAC;gBACD,MAAM;YACV,KAAK,aAAa,CAAC,eAAe;gBAC9B,CAAC;oBACG,MAAM,cAAc,GAChB,eAAe,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;oBAC1F,sBAAsB,EAAE,CAAC;oBACzB,MAAM,WAAW,GAAqB,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;oBAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,WAAmB,CAAC;wBACxB,IAAI,eAAe,EAAE,CAAC;4BAClB,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;4BACpF,kBAAkB,EAAE,CAAC;wBACzB,CAAC;6BAAM,CAAC;4BACJ,WAAW,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;wBACtF,CAAC;wBACD,iBAAiB,EAAE,CAAC;wBACpB,IAAI,SAAS,EAAE,CAAC;4BACZ,WAAW,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;4BAC3F,kBAAkB,IAAI,WAAW,GAAG,CAAC,CAAC;wBAC1C,CAAC;6BAAM,CAAC;4BACJ,MAAM,QAAQ,GAAG,uCAAuC,CACpD,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,cAAc,CACjB,CAAC;4BACF,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;4BAC1B,mBAAmB,IAAI,WAAW,CAAC;wBACvC,CAAC;oBACL,CAAC;oBACD,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,WAAW,CAAC;gBAChD,CAAC;gBACD,MAAM;YACV,KAAK,aAAa,CAAC,YAAY;gBAC3B,CAAC;oBACG,MAAM,WAAW,GACb,eAAe,CAAC,sBAAsB,CAAC,GAAG,eAAe,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;oBAC1F,sBAAsB,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAuB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;wBACrF,iBAAiB,EAAE,CAAC;wBACpB,IAAI,KAAc,CAAC;wBACnB,MAAM,KAAK,GAAqB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBACxD,MAAM,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;wBAC1F,kBAAkB,EAAE,CAAC;wBACrB,IAAI,SAAS,EAAE,CAAC;4BACZ,KAAK,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;4BACjF,kBAAkB,IAAI,WAAW,GAAG,CAAC,CAAC;wBAC1C,CAAC;6BAAM,CAAC;4BACJ,KAAK,GAAG,uCAAuC,CAC3C,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,IAAI,EACJ,cAAc,CACjB,CAAC;4BACF,mBAAmB,IAAI,WAAW,CAAC;wBACvC,CAAC;wBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACpC,MAAM,eAAe,GACjB,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;4BAC1E,kBAAkB,EAAE,CAAC;4BACrB,IAAI,SAAS,EAAE,CAAC;gCACZ,KAAK,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;gCACxF,kBAAkB,IAAI,eAAe,GAAG,CAAC,CAAC;4BAC9C,CAAC;iCAAM,CAAC;gCACJ,KAAK,CAAC,CAAC,CAAC,GAAG,uCAAuC,CAC9C,cAAc,CAAC,gBAAgB,EAC/B,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,IAAI,EACJ,cAAc,CACjB,CAAC;gCACF,mBAAmB,IAAI,eAAe,CAAC;4BAC3C,CAAC;wBACL,CAAC;wBACD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxC,CAAC;oBACD,UAAU,CAAC,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpD,CAAC;gBACD,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACnF,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,uCAAuC,CAC5C,gBAAkC,EAClC,YAAsC,EACtC,aAA0B,EAC1B,YAAoB,EACpB,WAAmB,EACnB,eAAwB,EACxB,cAA8B;IAE9B,IAAI,gBAAgB,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC/C,OAAO,uCAAuC,CAC1C,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,CACjB,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,OAAO,iCAAiC,CACpC,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,CAClB,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CACxB,YAAsC,EACtC,UAAkB,EAClB,WAAmB,EACnB,eAAwB;IAExB,MAAM,QAAQ,GAAY,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QAClB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,iCAAiC,CACtC,YAAsC,EACtC,aAA0B,EAC1B,YAAoB,EACpB,WAAmB,EACnB,eAAwB;IAExB,MAAM,QAAQ,GAAY,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QAClB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,uCAAuC,CAC5C,YAAsC,EACtC,aAA0B,EAC1B,YAAoB,EACpB,WAAmB,EACnB,eAAwB,EACxB,cAA8B;IAE9B,MAAM,QAAQ,GAAY,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;QAC9G,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QAClB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC","sourcesContent":["import type { GeometryVector, MortonSettings, CoordinatesArray } from \"./geometryVector\";\nimport { decodeZOrderCurve } from \"./zOrderCurve\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport { VertexBufferType } from \"./vertexBufferType\";\nimport Point from \"@mapbox/point-geometry\";\n\nexport function convertGeometryVector(geometryVector: GeometryVector): CoordinatesArray[] {\n const geometries: CoordinatesArray[] = new Array(geometryVector.numGeometries);\n let partOffsetCounter = 1;\n let ringOffsetsCounter = 1;\n let geometryOffsetsCounter = 1;\n let geometryCounter = 0;\n let vertexBufferOffset = 0;\n let vertexOffsetsOffset = 0;\n\n const mortonSettings = geometryVector.mortonSettings;\n const topologyVector = geometryVector.topologyVector;\n const geometryOffsets = topologyVector.geometryOffsets;\n const partOffsets = topologyVector.partOffsets;\n const ringOffsets = topologyVector.ringOffsets;\n const vertexOffsets = geometryVector.vertexOffsets;\n const nonOffset = !vertexOffsets || vertexOffsets.length === 0;\n\n const containsPolygon = geometryVector.containsPolygonGeometry();\n const vertexBuffer = geometryVector.vertexBuffer;\n\n for (let i = 0; i < geometryVector.numGeometries; i++) {\n const geometryType = geometryVector.geometryType(i);\n switch (geometryType) {\n case GEOMETRY_TYPE.POINT:\n {\n let x: number;\n let y: number;\n if (nonOffset) {\n x = vertexBuffer[vertexBufferOffset++];\n y = vertexBuffer[vertexBufferOffset++];\n } else if (geometryVector.vertexBufferType === VertexBufferType.MORTON) {\n const offset = vertexOffsets[vertexOffsetsOffset++];\n const mortonCode = vertexBuffer[offset];\n const vertex = decodeZOrderCurve(\n mortonCode,\n mortonSettings.numBits,\n mortonSettings.coordinateShift,\n );\n x = vertex.x;\n y = vertex.y;\n } else {\n const offset = vertexOffsets[vertexOffsetsOffset++] * 2;\n x = vertexBuffer[offset];\n y = vertexBuffer[offset + 1];\n }\n geometries[geometryCounter++] = [[new Point(x, y)]];\n if (geometryOffsets) geometryOffsetsCounter++;\n if (partOffsets) partOffsetCounter++;\n if (ringOffsets) ringOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOINT:\n {\n const numPoints =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const points: Point[] = new Array(numPoints);\n if (nonOffset) {\n for (let j = 0; j < numPoints; j++) {\n const x = vertexBuffer[vertexBufferOffset++];\n const y = vertexBuffer[vertexBufferOffset++];\n points[j] = new Point(x, y);\n }\n } else {\n for (let j = 0; j < numPoints; j++) {\n const offset = vertexOffsets[vertexOffsetsOffset++] * 2;\n const x = vertexBuffer[offset];\n const y = vertexBuffer[offset + 1];\n points[j] = new Point(x, y);\n }\n }\n geometries[geometryCounter++] = points.map((point) => [point]);\n // MULTIPOINT must increment offset counters like POINT does\n partOffsetCounter += numPoints;\n ringOffsetsCounter += numPoints;\n }\n break;\n case GEOMETRY_TYPE.LINESTRING:\n {\n let numVertices: number;\n if (containsPolygon) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n } else {\n numVertices = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n }\n partOffsetCounter++;\n\n let vertices: Point[];\n if (nonOffset) {\n vertices = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, false);\n vertexBufferOffset += numVertices * 2;\n } else {\n vertices = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n false,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n\n geometries[geometryCounter++] = [vertices];\n\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.POLYGON:\n {\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n const rings: CoordinatesArray = new Array(numRings - 1);\n let shell: Point[];\n let numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n\n if (nonOffset) {\n shell = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n for (let j = 0; j < rings.length; j++) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n rings[j] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n }\n } else {\n shell = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n for (let j = 0; j < rings.length; j++) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n rings[j] = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n }\n geometries[geometryCounter++] = [shell].concat(rings);\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTILINESTRING:\n {\n const numLineStrings =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const lineStrings: CoordinatesArray = new Array(numLineStrings);\n for (let j = 0; j < numLineStrings; j++) {\n let numVertices: number;\n if (containsPolygon) {\n numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n } else {\n numVertices = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n }\n partOffsetCounter++;\n if (nonOffset) {\n lineStrings[j] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, false);\n vertexBufferOffset += numVertices * 2;\n } else {\n const vertices = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n false,\n mortonSettings,\n );\n lineStrings[j] = vertices;\n vertexOffsetsOffset += numVertices;\n }\n }\n geometries[geometryCounter++] = lineStrings;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOLYGON:\n {\n const numPolygons =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const polygons: CoordinatesArray[] = new Array(numPolygons);\n for (let j = 0; j < numPolygons; j++) {\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n let shell: Point[];\n const rings: CoordinatesArray = new Array(numRings - 1);\n const numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n if (nonOffset) {\n shell = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numVertices, true);\n vertexBufferOffset += numVertices * 2;\n } else {\n shell = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numVertices;\n }\n for (let k = 0; k < rings.length; k++) {\n const numRingVertices =\n ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n if (nonOffset) {\n rings[k] = getLineStringOrRing(vertexBuffer, vertexBufferOffset, numRingVertices, true);\n vertexBufferOffset += numRingVertices * 2;\n } else {\n rings[k] = decodeDictionaryEncodedLineStringOrRing(\n geometryVector.vertexBufferType,\n vertexBuffer,\n vertexOffsets,\n vertexOffsetsOffset,\n numRingVertices,\n true,\n mortonSettings,\n );\n vertexOffsetsOffset += numRingVertices;\n }\n }\n polygons[j] = [shell].concat(rings);\n }\n geometries[geometryCounter++] = polygons.flat();\n }\n break;\n default:\n throw new Error(\"The specified geometry type is currently not supported.\");\n }\n }\n\n return geometries;\n}\n\nfunction decodeDictionaryEncodedLineStringOrRing(\n vertexBufferType: VertexBufferType,\n vertexBuffer: Int32Array | Uint32Array,\n vertexOffsets: Uint32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n mortonSettings: MortonSettings,\n): Point[] {\n if (vertexBufferType === VertexBufferType.MORTON) {\n return decodeMortonDictionaryEncodedLineString(\n vertexBuffer,\n vertexOffsets,\n vertexOffset,\n numVertices,\n closeLineString,\n mortonSettings,\n );\n } else {\n return decodeDictionaryEncodedLineString(\n vertexBuffer,\n vertexOffsets,\n vertexOffset,\n numVertices,\n closeLineString,\n );\n }\n}\n\nfunction getLineStringOrRing(\n vertexBuffer: Int32Array | Uint32Array,\n startIndex: number,\n numVertices: number,\n closeLineString: boolean,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices * 2; i += 2) {\n const x = vertexBuffer[startIndex + i];\n const y = vertexBuffer[startIndex + i + 1];\n vertices[i / 2] = new Point(x, y);\n }\n\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n return vertices;\n}\n\nfunction decodeDictionaryEncodedLineString(\n vertexBuffer: Int32Array | Uint32Array,\n vertexOffsets: Uint32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices * 2; i += 2) {\n const offset = vertexOffsets[vertexOffset + i / 2] * 2;\n const x = vertexBuffer[offset];\n const y = vertexBuffer[offset + 1];\n vertices[i / 2] = new Point(x, y);\n }\n\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n return vertices;\n}\n\nfunction decodeMortonDictionaryEncodedLineString(\n vertexBuffer: Int32Array | Uint32Array,\n vertexOffsets: Uint32Array,\n vertexOffset: number,\n numVertices: number,\n closeLineString: boolean,\n mortonSettings: MortonSettings,\n): Point[] {\n const vertices: Point[] = new Array(closeLineString ? numVertices + 1 : numVertices);\n for (let i = 0; i < numVertices; i++) {\n const offset = vertexOffsets[vertexOffset + i];\n const mortonEncodedVertex = vertexBuffer[offset];\n const vertex = decodeZOrderCurve(mortonEncodedVertex, mortonSettings.numBits, mortonSettings.coordinateShift);\n vertices[i] = new Point(vertex.x, vertex.y);\n }\n if (closeLineString) {\n vertices[vertices.length - 1] = vertices[0];\n }\n\n return vertices;\n}\n"]}
@@ -5,14 +5,14 @@ export declare abstract class GpuVector implements Iterable<CoordinatesArray> {
5
5
  private readonly _indexBuffer;
6
6
  private readonly _vertexBuffer;
7
7
  private readonly _topologyVector?;
8
- protected constructor(_triangleOffsets: Uint32Array, _indexBuffer: Int32Array, _vertexBuffer: Int32Array, _topologyVector?: TopologyVector | null);
8
+ protected constructor(_triangleOffsets: Uint32Array, _indexBuffer: Uint32Array, _vertexBuffer: Int32Array | Uint32Array, _topologyVector?: TopologyVector);
9
9
  abstract geometryType(index: number): number;
10
10
  abstract get numGeometries(): number;
11
11
  abstract containsSingleGeometryType(): boolean;
12
12
  get triangleOffsets(): Uint32Array;
13
- get indexBuffer(): Int32Array;
14
- get vertexBuffer(): Int32Array;
15
- get topologyVector(): TopologyVector | null;
13
+ get indexBuffer(): Uint32Array;
14
+ get vertexBuffer(): Int32Array | Uint32Array;
15
+ get topologyVector(): TopologyVector | undefined;
16
16
  /**
17
17
  * Returns geometries as coordinate arrays by extracting polygon outlines from topology.
18
18
  * The vertexBuffer contains the outline vertices, separate from the tessellated triangles.
@@ -1,10 +1,6 @@
1
1
  import Point from "@mapbox/point-geometry";
2
2
  import { GEOMETRY_TYPE } from "./geometryType";
3
3
  export class GpuVector {
4
- _triangleOffsets;
5
- _indexBuffer;
6
- _vertexBuffer;
7
- _topologyVector;
8
4
  constructor(_triangleOffsets, _indexBuffer, _vertexBuffer, _topologyVector) {
9
5
  this._triangleOffsets = _triangleOffsets;
10
6
  this._indexBuffer = _indexBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"gpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/gpuVector.ts"],"names":[],"mappings":"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","sourcesContent":["import Point from \"@mapbox/point-geometry\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport type { CoordinatesArray } from \"./geometryVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport abstract class GpuVector implements Iterable<CoordinatesArray> {\n protected constructor(\n private readonly _triangleOffsets: Uint32Array,\n private readonly _indexBuffer: Int32Array,\n private readonly _vertexBuffer: Int32Array,\n private readonly _topologyVector?: TopologyVector | null,\n ) {}\n\n abstract geometryType(index: number): number;\n\n abstract get numGeometries(): number;\n\n abstract containsSingleGeometryType(): boolean;\n\n get triangleOffsets(): Uint32Array {\n return this._triangleOffsets;\n }\n\n get indexBuffer(): Int32Array {\n return this._indexBuffer;\n }\n\n get vertexBuffer(): Int32Array {\n return this._vertexBuffer;\n }\n\n get topologyVector(): TopologyVector | null {\n return this._topologyVector;\n }\n\n /**\n * Returns geometries as coordinate arrays by extracting polygon outlines from topology.\n * The vertexBuffer contains the outline vertices, separate from the tessellated triangles.\n */\n getGeometries(): CoordinatesArray[] {\n if (!this._topologyVector) {\n throw new Error(\"Cannot convert GpuVector to coordinates without topology information\");\n }\n\n const geometries: CoordinatesArray[] = new Array(this.numGeometries);\n const topology = this._topologyVector;\n const partOffsets = topology.partOffsets;\n const ringOffsets = topology.ringOffsets;\n const geometryOffsets = topology.geometryOffsets;\n\n // Use counters to track position in offset arrays (like Java implementation)\n let vertexBufferOffset = 0;\n let partOffsetCounter = 1;\n let ringOffsetsCounter = 1;\n let geometryOffsetsCounter = 1;\n\n for (let i = 0; i < this.numGeometries; i++) {\n const geometryType = this.geometryType(i);\n\n switch (geometryType) {\n case GEOMETRY_TYPE.POLYGON:\n {\n // Get number of rings for this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n const rings: Point[][] = [];\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n rings.push(ring);\n }\n\n geometries[i] = rings;\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOLYGON:\n {\n // Get number of polygons in this multipolygon\n const numPolygons =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const allRings: Point[][] = [];\n\n for (let p = 0; p < numPolygons; p++) {\n // Get number of rings in this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices =\n ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n allRings.push(ring);\n }\n }\n\n geometries[i] = allRings;\n }\n break;\n }\n }\n return geometries;\n }\n\n [Symbol.iterator](): Iterator<CoordinatesArray> {\n /*for(let i = 1; i < this.triangleOffsets.length; i++) {\n const numTriangles = this.triangleOffsets[i] - this.triangleOffsets[i-1];\n const startIndex = this.triangleOffsets[i-1] * 3;\n const endIndex = this.triangleOffsets[i] * 3;\n }\n\n while (index < this.numGeometries) {\n yield geometries[index++];\n }*/\n\n //throw new Error(\"Iterator on a GpuVector is not implemented yet.\");\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"gpuVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/gpuVector.ts"],"names":[],"mappings":"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","sourcesContent":["import Point from \"@mapbox/point-geometry\";\nimport { GEOMETRY_TYPE } from \"./geometryType\";\nimport type { CoordinatesArray } from \"./geometryVector\";\nimport type { TopologyVector } from \"./topologyVector\";\n\nexport abstract class GpuVector implements Iterable<CoordinatesArray> {\n protected constructor(\n private readonly _triangleOffsets: Uint32Array,\n private readonly _indexBuffer: Uint32Array,\n private readonly _vertexBuffer: Int32Array | Uint32Array,\n private readonly _topologyVector?: TopologyVector,\n ) {}\n\n abstract geometryType(index: number): number;\n\n abstract get numGeometries(): number;\n\n abstract containsSingleGeometryType(): boolean;\n\n get triangleOffsets(): Uint32Array {\n return this._triangleOffsets;\n }\n\n get indexBuffer(): Uint32Array {\n return this._indexBuffer;\n }\n\n get vertexBuffer(): Int32Array | Uint32Array {\n return this._vertexBuffer;\n }\n\n get topologyVector(): TopologyVector | undefined {\n return this._topologyVector;\n }\n\n /**\n * Returns geometries as coordinate arrays by extracting polygon outlines from topology.\n * The vertexBuffer contains the outline vertices, separate from the tessellated triangles.\n */\n getGeometries(): CoordinatesArray[] {\n if (!this._topologyVector) {\n throw new Error(\"Cannot convert GpuVector to coordinates without topology information\");\n }\n\n const geometries: CoordinatesArray[] = new Array(this.numGeometries);\n const topology = this._topologyVector;\n const partOffsets = topology.partOffsets;\n const ringOffsets = topology.ringOffsets;\n const geometryOffsets = topology.geometryOffsets;\n\n // Use counters to track position in offset arrays (like Java implementation)\n let vertexBufferOffset = 0;\n let partOffsetCounter = 1;\n let ringOffsetsCounter = 1;\n let geometryOffsetsCounter = 1;\n\n for (let i = 0; i < this.numGeometries; i++) {\n const geometryType = this.geometryType(i);\n\n switch (geometryType) {\n case GEOMETRY_TYPE.POLYGON:\n {\n // Get number of rings for this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n const rings: Point[][] = [];\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices = ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n rings.push(ring);\n }\n\n geometries[i] = rings;\n if (geometryOffsets) geometryOffsetsCounter++;\n }\n break;\n case GEOMETRY_TYPE.MULTIPOLYGON:\n {\n // Get number of polygons in this multipolygon\n const numPolygons =\n geometryOffsets[geometryOffsetsCounter] - geometryOffsets[geometryOffsetsCounter - 1];\n geometryOffsetsCounter++;\n const allRings: Point[][] = [];\n\n for (let p = 0; p < numPolygons; p++) {\n // Get number of rings in this polygon\n const numRings = partOffsets[partOffsetCounter] - partOffsets[partOffsetCounter - 1];\n partOffsetCounter++;\n\n for (let j = 0; j < numRings; j++) {\n // Get number of vertices in this ring\n const numVertices =\n ringOffsets[ringOffsetsCounter] - ringOffsets[ringOffsetsCounter - 1];\n ringOffsetsCounter++;\n const ring: Point[] = [];\n\n for (let k = 0; k < numVertices; k++) {\n const x = this._vertexBuffer[vertexBufferOffset++];\n const y = this._vertexBuffer[vertexBufferOffset++];\n ring.push(new Point(x, y));\n }\n // Close the ring by duplicating the first vertex (MVT format requirement)\n if (ring.length > 0) {\n ring.push(ring[0]);\n }\n allRings.push(ring);\n }\n }\n\n geometries[i] = allRings;\n }\n break;\n }\n }\n return geometries;\n }\n\n [Symbol.iterator](): Iterator<CoordinatesArray> {\n /*for(let i = 1; i < this.triangleOffsets.length; i++) {\n const numTriangles = this.triangleOffsets[i] - this.triangleOffsets[i-1];\n const startIndex = this.triangleOffsets[i-1] * 3;\n const endIndex = this.triangleOffsets[i] * 3;\n }\n\n while (index < this.numGeometries) {\n yield geometries[index++];\n }*/\n\n //throw new Error(\"Iterator on a GpuVector is not implemented yet.\");\n return null;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  export type TopologyVector = {
2
- readonly geometryOffsets: Uint32Array;
3
- readonly partOffsets: Uint32Array;
4
- readonly ringOffsets: Uint32Array;
2
+ readonly geometryOffsets?: Uint32Array;
3
+ readonly partOffsets?: Uint32Array;
4
+ readonly ringOffsets?: Uint32Array;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"topologyVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/topologyVector.ts"],"names":[],"mappings":"","sourcesContent":["export type TopologyVector = {\n readonly geometryOffsets: Uint32Array;\n readonly partOffsets: Uint32Array;\n readonly ringOffsets: Uint32Array;\n};\n"]}
1
+ {"version":3,"file":"topologyVector.js","sourceRoot":"","sources":["../../../src/vector/geometry/topologyVector.ts"],"names":[],"mappings":"","sourcesContent":["export type TopologyVector = {\n readonly geometryOffsets?: Uint32Array;\n readonly partOffsets?: Uint32Array;\n readonly ringOffsets?: Uint32Array;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { Int32FlatVector } from "./flat/int32FlatVector";
2
+ import type { Int64FlatVector } from "./flat/int64FlatVector";
3
+ import type { Int32ConstVector } from "./constant/int32ConstVector";
4
+ import type { Int64ConstVector } from "./constant/int64ConstVector";
5
+ import type { Int32SequenceVector } from "./sequence/int32SequenceVector";
6
+ import type { Int64SequenceVector } from "./sequence/int64SequenceVector";
7
+ import type { DoubleFlatVector } from "./flat/doubleFlatVector";
8
+ export type IdVector = Int32FlatVector | Int64FlatVector | DoubleFlatVector | Int32SequenceVector | Int64SequenceVector | Int32ConstVector | Int64ConstVector;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=idVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idVector.js","sourceRoot":"","sources":["../../src/vector/idVector.ts"],"names":[],"mappings":"","sourcesContent":["import type { Int32FlatVector } from \"./flat/int32FlatVector\";\nimport type { Int64FlatVector } from \"./flat/int64FlatVector\";\nimport type { Int32ConstVector } from \"./constant/int32ConstVector\";\nimport type { Int64ConstVector } from \"./constant/int64ConstVector\";\nimport type { Int32SequenceVector } from \"./sequence/int32SequenceVector\";\nimport type { Int64SequenceVector } from \"./sequence/int64SequenceVector\";\nimport type { DoubleFlatVector } from \"./flat/doubleFlatVector\";\n\nexport type IdVector =\n | Int32FlatVector\n | Int64FlatVector\n | DoubleFlatVector\n | Int32SequenceVector\n | Int64SequenceVector\n | Int32ConstVector\n | Int64ConstVector;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { SequenceVector } from "./sequenceVector";
2
- export declare class IntSequenceVector extends SequenceVector<Int32Array, number> {
2
+ export declare class Int32SequenceVector extends SequenceVector<Int32Array, number> {
3
3
  constructor(name: string, baseValue: number, delta: number, size: number);
4
4
  protected getValueFromBuffer(index: number): number;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import { SequenceVector } from "./sequenceVector";
2
- export class IntSequenceVector extends SequenceVector {
2
+ export class Int32SequenceVector extends SequenceVector {
3
3
  constructor(name, baseValue, delta, size) {
4
4
  super(name, Int32Array.of(baseValue), delta, size);
5
5
  }
@@ -7,4 +7,4 @@ export class IntSequenceVector extends SequenceVector {
7
7
  return this.dataBuffer[0] + index * this.delta;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=intSequenceVector.js.map
10
+ //# sourceMappingURL=int32SequenceVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"int32SequenceVector.js","sourceRoot":"","sources":["../../../src/vector/sequence/int32SequenceVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,mBAAoB,SAAQ,cAAkC;IACvE,YAAmB,IAAY,EAAE,SAAiB,EAAE,KAAa,EAAE,IAAY;QAC3E,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IACS,kBAAkB,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnD,CAAC;CACJ","sourcesContent":["import { SequenceVector } from \"./sequenceVector\";\n\nexport class Int32SequenceVector extends SequenceVector<Int32Array, number> {\n public constructor(name: string, baseValue: number, delta: number, size: number) {\n super(name, Int32Array.of(baseValue), delta, size);\n }\n protected getValueFromBuffer(index: number): number {\n return this.dataBuffer[0] + index * this.delta;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { SequenceVector } from "./sequenceVector";
2
- export declare class LongSequenceVector extends SequenceVector<BigInt64Array, bigint> {
2
+ export declare class Int64SequenceVector extends SequenceVector<BigInt64Array, bigint> {
3
3
  constructor(name: string, baseValue: bigint, delta: bigint, size: number);
4
4
  protected getValueFromBuffer(index: number): bigint;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import { SequenceVector } from "./sequenceVector";
2
- export class LongSequenceVector extends SequenceVector {
2
+ export class Int64SequenceVector extends SequenceVector {
3
3
  constructor(name, baseValue, delta, size) {
4
4
  super(name, BigInt64Array.of(baseValue), delta, size);
5
5
  }
@@ -7,4 +7,4 @@ export class LongSequenceVector extends SequenceVector {
7
7
  return this.dataBuffer[0] + BigInt(index) * this.delta;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=longSequenceVector.js.map
10
+ //# sourceMappingURL=int64SequenceVector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"int64SequenceVector.js","sourceRoot":"","sources":["../../../src/vector/sequence/int64SequenceVector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,mBAAoB,SAAQ,cAAqC;IAC1E,YAAmB,IAAY,EAAE,SAAiB,EAAE,KAAa,EAAE,IAAY;QAC3E,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAES,kBAAkB,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3D,CAAC;CACJ","sourcesContent":["import { SequenceVector } from \"./sequenceVector\";\n\nexport class Int64SequenceVector extends SequenceVector<BigInt64Array, bigint> {\n public constructor(name: string, baseValue: bigint, delta: bigint, size: number) {\n super(name, BigInt64Array.of(baseValue), delta, size);\n }\n\n protected getValueFromBuffer(index: number): bigint {\n return this.dataBuffer[0] + BigInt(index) * this.delta;\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import Vector from "../vector";
2
2
  export class SequenceVector extends Vector {
3
- delta;
4
3
  constructor(name, baseValueBuffer, delta, size) {
5
4
  super(name, baseValueBuffer, size);
6
5
  this.delta = delta;
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceVector.js","sourceRoot":"","sources":["../../../src/vector/sequence/sequenceVector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,OAAgB,cAA6C,SAAQ,MAAY;IAChE,KAAK,CAAI;IAE5B,YAAsB,IAAY,EAAE,eAAkB,EAAE,KAAQ,EAAE,IAAY;QAC1E,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ","sourcesContent":["import Vector from \"../vector\";\n\nexport abstract class SequenceVector<T extends ArrayBufferView, K> extends Vector<T, K> {\n protected readonly delta: K;\n\n protected constructor(name: string, baseValueBuffer: T, delta: K, size: number) {\n super(name, baseValueBuffer, size);\n this.delta = delta;\n }\n}\n"]}
1
+ {"version":3,"file":"sequenceVector.js","sourceRoot":"","sources":["../../../src/vector/sequence/sequenceVector.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,OAAgB,cAA6C,SAAQ,MAAY;IAGnF,YAAsB,IAAY,EAAE,eAAkB,EAAE,KAAQ,EAAE,IAAY;QAC1E,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ","sourcesContent":["import Vector from \"../vector\";\n\nexport abstract class SequenceVector<T extends ArrayBufferView, K> extends Vector<T, K> {\n protected readonly delta: K;\n\n protected constructor(name: string, baseValueBuffer: T, delta: K, size: number) {\n super(name, baseValueBuffer, size);\n this.delta = delta;\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import Vector from "./vector";
2
2
  export class VariableSizeVector extends Vector {
3
- offsetBuffer;
4
3
  constructor(name, offsetBuffer, dataBuffer, sizeOrNullabilityBuffer) {
5
4
  super(name, dataBuffer, sizeOrNullabilityBuffer);
6
5
  this.offsetBuffer = offsetBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"variableSizeVector.js","sourceRoot":"","sources":["../../src/vector/variableSizeVector.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,OAAgB,kBAAiD,SAAQ,MAAY;IAGzE;IAFd,YACI,IAAY,EACF,YAAyB,EACnC,UAAa,EACb,uBAA2C;QAE3C,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAJvC,iBAAY,GAAZ,YAAY,CAAa;IAKvC,CAAC;CACJ","sourcesContent":["import type BitVector from \"./flat/bitVector\";\nimport Vector from \"./vector\";\n\nexport abstract class VariableSizeVector<T extends ArrayBufferView, K> extends Vector<T, K> {\n protected constructor(\n name: string,\n protected offsetBuffer: Uint32Array,\n dataBuffer: T,\n sizeOrNullabilityBuffer: number | BitVector,\n ) {\n super(name, dataBuffer, sizeOrNullabilityBuffer);\n }\n}\n"]}
1
+ {"version":3,"file":"variableSizeVector.js","sourceRoot":"","sources":["../../src/vector/variableSizeVector.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,OAAgB,kBAAiD,SAAQ,MAAY;IACvF,YACI,IAAY,EACF,YAAyB,EACnC,UAAa,EACb,uBAA2C;QAE3C,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAJvC,iBAAY,GAAZ,YAAY,CAAa;IAKvC,CAAC;CACJ","sourcesContent":["import type BitVector from \"./flat/bitVector\";\nimport Vector from \"./vector\";\n\nexport abstract class VariableSizeVector<T extends ArrayBufferView, K> extends Vector<T, K> {\n protected constructor(\n name: string,\n protected offsetBuffer: Uint32Array,\n dataBuffer: T,\n sizeOrNullabilityBuffer: number | BitVector,\n ) {\n super(name, dataBuffer, sizeOrNullabilityBuffer);\n }\n}\n"]}
@@ -1,8 +1,4 @@
1
1
  export default class Vector {
2
- _name;
3
- dataBuffer;
4
- nullabilityBuffer;
5
- _size;
6
2
  constructor(_name, dataBuffer, sizeOrNullabilityBuffer) {
7
3
  this._name = _name;
8
4
  this.dataBuffer = dataBuffer;