@maplibre/mlt 0.0.1-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/dist/encodings/decodingUtils.d.ts +13 -0
- package/dist/encodings/decodingUtils.js +194 -0
- package/dist/encodings/decodingUtils.js.map +1 -0
- package/dist/encodings/doubleDecoder.d.ts +4 -0
- package/dist/encodings/doubleDecoder.js +22 -0
- package/dist/encodings/doubleDecoder.js.map +1 -0
- package/dist/encodings/fastpfor/bitpacking.d.ts +51 -0
- package/dist/encodings/fastpfor/bitpacking.js +4444 -0
- package/dist/encodings/fastpfor/bitpacking.js.map +1 -0
- package/dist/encodings/fastpfor/codec.d.ts +19 -0
- package/dist/encodings/fastpfor/codec.js +3 -0
- package/dist/encodings/fastpfor/codec.js.map +1 -0
- package/dist/encodings/fastpfor/fastpfor.d.ts +38 -0
- package/dist/encodings/fastpfor/fastpfor.js +123 -0
- package/dist/encodings/fastpfor/fastpfor.js.map +1 -0
- package/dist/encodings/fastpfor/index.d.ts +20 -0
- package/dist/encodings/fastpfor/index.js +47 -0
- package/dist/encodings/fastpfor/index.js.map +1 -0
- package/dist/encodings/fastpfor/util.d.ts +2 -0
- package/dist/encodings/fastpfor/util.js +16 -0
- package/dist/encodings/fastpfor/util.js.map +1 -0
- package/dist/encodings/fastpfor/varint.d.ts +18 -0
- package/dist/encodings/fastpfor/varint.js +125 -0
- package/dist/encodings/fastpfor/varint.js.map +1 -0
- package/dist/encodings/fsstDecoder.d.ts +9 -0
- package/dist/encodings/fsstDecoder.js +34 -0
- package/dist/encodings/fsstDecoder.js.map +1 -0
- package/dist/encodings/geometryDecoder.d.ts +5 -0
- package/dist/encodings/geometryDecoder.js +453 -0
- package/dist/encodings/geometryDecoder.js.map +1 -0
- package/dist/encodings/geometryScaling.d.ts +6 -0
- package/dist/encodings/geometryScaling.js +3 -0
- package/dist/encodings/geometryScaling.js.map +1 -0
- package/dist/encodings/intWrapper.d.ts +8 -0
- package/dist/encodings/intWrapper.js +22 -0
- package/dist/encodings/intWrapper.js.map +1 -0
- package/dist/encodings/integerDecodingUtils.d.ts +46 -0
- package/dist/encodings/integerDecodingUtils.js +703 -0
- package/dist/encodings/integerDecodingUtils.js.map +1 -0
- package/dist/encodings/integerStreamDecoder.d.ts +26 -0
- package/dist/encodings/integerStreamDecoder.js +254 -0
- package/dist/encodings/integerStreamDecoder.js.map +1 -0
- package/dist/encodings/propertyDecoder.d.ts +4 -0
- package/dist/encodings/propertyDecoder.js +194 -0
- package/dist/encodings/propertyDecoder.js.map +1 -0
- package/dist/encodings/stringDecoder.d.ts +11 -0
- package/dist/encodings/stringDecoder.js +148 -0
- package/dist/encodings/stringDecoder.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata/tile/dictionaryType.d.ts +8 -0
- package/dist/metadata/tile/dictionaryType.js +13 -0
- package/dist/metadata/tile/dictionaryType.js.map +1 -0
- package/dist/metadata/tile/lengthType.d.ts +9 -0
- package/dist/metadata/tile/lengthType.js +14 -0
- package/dist/metadata/tile/lengthType.js.map +1 -0
- package/dist/metadata/tile/logicalLevelTechnique.d.ts +8 -0
- package/dist/metadata/tile/logicalLevelTechnique.js +15 -0
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -0
- package/dist/metadata/tile/logicalStreamType.d.ts +12 -0
- package/dist/metadata/tile/logicalStreamType.js +21 -0
- package/dist/metadata/tile/logicalStreamType.js.map +1 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +15 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +29 -0
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -0
- package/dist/metadata/tile/offsetType.d.ts +6 -0
- package/dist/metadata/tile/offsetType.js +11 -0
- package/dist/metadata/tile/offsetType.js.map +1 -0
- package/dist/metadata/tile/physicalLevelTechnique.d.ts +17 -0
- package/dist/metadata/tile/physicalLevelTechnique.js +22 -0
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -0
- package/dist/metadata/tile/physicalStreamType.d.ts +6 -0
- package/dist/metadata/tile/physicalStreamType.js +11 -0
- package/dist/metadata/tile/physicalStreamType.js.map +1 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +20 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +34 -0
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -0
- package/dist/metadata/tile/scalarType.d.ts +12 -0
- package/dist/metadata/tile/scalarType.js +17 -0
- package/dist/metadata/tile/scalarType.js.map +1 -0
- package/dist/metadata/tile/streamMetadata.d.ts +23 -0
- package/dist/metadata/tile/streamMetadata.js +71 -0
- package/dist/metadata/tile/streamMetadata.js.map +1 -0
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +5 -0
- package/dist/metadata/tile/streamMetadataDecoder.js +24 -0
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +10 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +112 -0
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -0
- package/dist/metadata/tileset/tilesetMetadata.g.d.ts +418 -0
- package/dist/metadata/tileset/tilesetMetadata.g.js +476 -0
- package/dist/metadata/tileset/tilesetMetadata.g.js.map +1 -0
- package/dist/metadata/tileset/typeMap.d.ts +38 -0
- package/dist/metadata/tileset/typeMap.js +185 -0
- package/dist/metadata/tileset/typeMap.js.map +1 -0
- package/dist/mltDecoder.d.ts +11 -0
- package/dist/mltDecoder.js +146 -0
- package/dist/mltDecoder.js.map +1 -0
- package/dist/mltMetadata.d.ts +40 -0
- package/dist/mltMetadata.js +34 -0
- package/dist/mltMetadata.js.map +1 -0
- package/dist/vector/constant/intConstVector.d.ts +19 -0
- package/dist/vector/constant/intConstVector.js +89 -0
- package/dist/vector/constant/intConstVector.js.map +1 -0
- package/dist/vector/constant/longConstVector.d.ts +19 -0
- package/dist/vector/constant/longConstVector.js +87 -0
- package/dist/vector/constant/longConstVector.js.map +1 -0
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +22 -0
- package/dist/vector/dictionary/stringDictionaryVector.js +180 -0
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -0
- package/dist/vector/featureTable.d.ts +29 -0
- package/dist/vector/featureTable.js +70 -0
- package/dist/vector/featureTable.js.map +1 -0
- package/dist/vector/filter/constSelectionVector.d.ts +0 -0
- package/dist/vector/filter/constSelectionVector.js +1 -0
- package/dist/vector/filter/constSelectionVector.js.map +1 -0
- package/dist/vector/filter/flatSelectionVector.d.ts +16 -0
- package/dist/vector/filter/flatSelectionVector.js +42 -0
- package/dist/vector/filter/flatSelectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVector.d.ts +8 -0
- package/dist/vector/filter/selectionVector.js +3 -0
- package/dist/vector/filter/selectionVector.js.map +1 -0
- package/dist/vector/filter/selectionVectorUtils.d.ts +7 -0
- package/dist/vector/filter/selectionVectorUtils.js +44 -0
- package/dist/vector/filter/selectionVectorUtils.js.map +1 -0
- package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
- package/dist/vector/filter/sequenceSelectionVector.js +1 -0
- package/dist/vector/filter/sequenceSelectionVector.js.map +1 -0
- package/dist/vector/fixedSizeVector.d.ts +5 -0
- package/dist/vector/fixedSizeVector.js +14 -0
- package/dist/vector/fixedSizeVector.js.map +1 -0
- package/dist/vector/flat/bitVector.d.ts +14 -0
- package/dist/vector/flat/bitVector.js +38 -0
- package/dist/vector/flat/bitVector.js.map +1 -0
- package/dist/vector/flat/booleanFlatVector.d.ts +20 -0
- package/dist/vector/flat/booleanFlatVector.js +55 -0
- package/dist/vector/flat/booleanFlatVector.js.map +1 -0
- package/dist/vector/flat/doubleFlatVector.d.ts +19 -0
- package/dist/vector/flat/doubleFlatVector.js +109 -0
- package/dist/vector/flat/doubleFlatVector.js.map +1 -0
- package/dist/vector/flat/floatFlatVector.d.ts +19 -0
- package/dist/vector/flat/floatFlatVector.js +109 -0
- package/dist/vector/flat/floatFlatVector.js.map +1 -0
- package/dist/vector/flat/intFlatVector.d.ts +19 -0
- package/dist/vector/flat/intFlatVector.js +123 -0
- package/dist/vector/flat/intFlatVector.js.map +1 -0
- package/dist/vector/flat/longFlatVector.d.ts +19 -0
- package/dist/vector/flat/longFlatVector.js +124 -0
- package/dist/vector/flat/longFlatVector.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +20 -0
- package/dist/vector/flat/stringFlatVector.js +165 -0
- package/dist/vector/flat/stringFlatVector.js.map +1 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +27 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +115 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -0
- package/dist/vector/geometry/constGeometryVector.d.ts +17 -0
- package/dist/vector/geometry/constGeometryVector.js +51 -0
- package/dist/vector/geometry/constGeometryVector.js.map +1 -0
- package/dist/vector/geometry/constGpuVector.d.ts +15 -0
- package/dist/vector/geometry/constGpuVector.js +66 -0
- package/dist/vector/geometry/constGpuVector.js.map +1 -0
- package/dist/vector/geometry/flatGeometryVector.d.ts +16 -0
- package/dist/vector/geometry/flatGeometryVector.js +64 -0
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -0
- package/dist/vector/geometry/flatGpuVector.d.ts +14 -0
- package/dist/vector/geometry/flatGpuVector.js +67 -0
- package/dist/vector/geometry/flatGpuVector.js.map +1 -0
- package/dist/vector/geometry/geometryType.d.ts +13 -0
- package/dist/vector/geometry/geometryType.js +19 -0
- package/dist/vector/geometry/geometryType.js.map +1 -0
- package/dist/vector/geometry/geometryVector.d.ts +37 -0
- package/dist/vector/geometry/geometryVector.js +73 -0
- package/dist/vector/geometry/geometryVector.js.map +1 -0
- package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -0
- package/dist/vector/geometry/geometryVectorConverter.js +302 -0
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -0
- package/dist/vector/geometry/gpuVector.d.ts +21 -0
- package/dist/vector/geometry/gpuVector.js +38 -0
- package/dist/vector/geometry/gpuVector.js.map +1 -0
- package/dist/vector/geometry/point.d.ts +195 -0
- package/dist/vector/geometry/point.js +283 -0
- package/dist/vector/geometry/point.js.map +1 -0
- package/dist/vector/geometry/spaceFillingCurve.d.ts +22 -0
- package/dist/vector/geometry/spaceFillingCurve.js +26 -0
- package/dist/vector/geometry/spaceFillingCurve.js.map +1 -0
- package/dist/vector/geometry/topologyVector.d.ts +9 -0
- package/dist/vector/geometry/topologyVector.js +21 -0
- package/dist/vector/geometry/topologyVector.js.map +1 -0
- package/dist/vector/geometry/zOrderCurve.d.ts +17 -0
- package/dist/vector/geometry/zOrderCurve.js +44 -0
- package/dist/vector/geometry/zOrderCurve.js.map +1 -0
- package/dist/vector/intVector.d.ts +8 -0
- package/dist/vector/intVector.js +3 -0
- package/dist/vector/intVector.js.map +1 -0
- package/dist/vector/sequence/intSequenceVector.d.ts +18 -0
- package/dist/vector/sequence/intSequenceVector.js +72 -0
- package/dist/vector/sequence/intSequenceVector.js.map +1 -0
- package/dist/vector/sequence/longSequenceVector.d.ts +18 -0
- package/dist/vector/sequence/longSequenceVector.js +57 -0
- package/dist/vector/sequence/longSequenceVector.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.d.ts +5 -0
- package/dist/vector/sequence/sequenceVector.js +15 -0
- package/dist/vector/sequence/sequenceVector.js.map +1 -0
- package/dist/vector/variableSizeVector.d.ts +6 -0
- package/dist/vector/variableSizeVector.js +16 -0
- package/dist/vector/variableSizeVector.js.map +1 -0
- package/dist/vector/vector.d.ts +30 -0
- package/dist/vector/vector.js +73 -0
- package/dist/vector/vector.js.map +1 -0
- package/dist/vector/vectorType.d.ts +7 -0
- package/dist/vector/vectorType.js +12 -0
- package/dist/vector/vectorType.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface IntegerCODEC {
|
|
2
|
+
uncompress(model: {
|
|
3
|
+
input: Uint32Array;
|
|
4
|
+
inpos: number;
|
|
5
|
+
inlength: number;
|
|
6
|
+
output: Uint32Array;
|
|
7
|
+
outpos: number;
|
|
8
|
+
}): void;
|
|
9
|
+
}
|
|
10
|
+
export interface SkippableIntegerCODEC {
|
|
11
|
+
headlessUncompress(model: {
|
|
12
|
+
input: Uint32Array;
|
|
13
|
+
inpos: number;
|
|
14
|
+
inlength: number;
|
|
15
|
+
output: Uint32Array;
|
|
16
|
+
outpos: number;
|
|
17
|
+
num: number;
|
|
18
|
+
}): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/codec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code is based on the work previously done by
|
|
3
|
+
* Daniel Lemire, http://lemire.me/en/
|
|
4
|
+
*/
|
|
5
|
+
import ByteBuffer from 'bytebuffer';
|
|
6
|
+
import { IntegerCODEC, SkippableIntegerCODEC } from "./codec";
|
|
7
|
+
export declare class FastPFOR implements IntegerCODEC, SkippableIntegerCODEC {
|
|
8
|
+
static readonly OVERHEAD_OF_EACH_EXCEPT = 8;
|
|
9
|
+
static readonly DEFAULT_PAGE_SIZE = 65536;
|
|
10
|
+
static readonly BLOCK_SIZE = 256;
|
|
11
|
+
pageSize: number;
|
|
12
|
+
dataTobePacked: Uint32Array[];
|
|
13
|
+
byteContainer: ByteBuffer;
|
|
14
|
+
dataPointers: Uint32Array;
|
|
15
|
+
private constructor();
|
|
16
|
+
static default(): FastPFOR;
|
|
17
|
+
headlessUncompress(model: {
|
|
18
|
+
input: Uint32Array;
|
|
19
|
+
inpos: number;
|
|
20
|
+
output: Uint32Array;
|
|
21
|
+
outpos: number;
|
|
22
|
+
num: number;
|
|
23
|
+
}): void;
|
|
24
|
+
decodePage(model: {
|
|
25
|
+
input: Uint32Array;
|
|
26
|
+
inpos: number;
|
|
27
|
+
output: Uint32Array;
|
|
28
|
+
outpos: number;
|
|
29
|
+
num: number;
|
|
30
|
+
}): void;
|
|
31
|
+
uncompress(model: {
|
|
32
|
+
input: Uint32Array;
|
|
33
|
+
inpos: number;
|
|
34
|
+
inlength: number;
|
|
35
|
+
output: Uint32Array;
|
|
36
|
+
outpos: number;
|
|
37
|
+
}): void;
|
|
38
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This code is based on the work previously done by
|
|
4
|
+
* Daniel Lemire, http://lemire.me/en/
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.FastPFOR = void 0;
|
|
11
|
+
// eslint-disable functional/no-this-expression
|
|
12
|
+
// eslint-disable functional/no-class
|
|
13
|
+
// eslint-disable functional/prefer-readonly-type
|
|
14
|
+
const bytebuffer_1 = __importDefault(require("bytebuffer"));
|
|
15
|
+
const bitpacking_1 = require("./bitpacking");
|
|
16
|
+
const util_1 = require("./util");
|
|
17
|
+
class FastPFOR {
|
|
18
|
+
constructor(pagesize) {
|
|
19
|
+
this.dataTobePacked = new Array(33);
|
|
20
|
+
this.dataPointers = new Uint32Array(33).fill(0);
|
|
21
|
+
this.pageSize = pagesize;
|
|
22
|
+
this.byteContainer = new bytebuffer_1.default(3 * this.pageSize
|
|
23
|
+
/ FastPFOR.BLOCK_SIZE + this.pageSize, true);
|
|
24
|
+
for (let k = 1; k < this.dataTobePacked.length; ++k)
|
|
25
|
+
this.dataTobePacked[k] = new Uint32Array(this.pageSize / 32 * 4).fill(0);
|
|
26
|
+
}
|
|
27
|
+
static default() {
|
|
28
|
+
return new FastPFOR(FastPFOR.DEFAULT_PAGE_SIZE);
|
|
29
|
+
}
|
|
30
|
+
headlessUncompress(model) {
|
|
31
|
+
const mynvalue = (0, util_1.greatestMultiple)(model.num, FastPFOR.BLOCK_SIZE);
|
|
32
|
+
const finalout = model.outpos.valueOf() + mynvalue;
|
|
33
|
+
while (model.outpos.valueOf() != finalout) {
|
|
34
|
+
model.num = Math.min(this.pageSize, finalout - model.outpos.valueOf());
|
|
35
|
+
this.decodePage(model);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
decodePage(model) {
|
|
39
|
+
const initpos = model.inpos.valueOf();
|
|
40
|
+
const wheremeta = model.input[model.inpos];
|
|
41
|
+
model.inpos += 1;
|
|
42
|
+
let inexcept = initpos + wheremeta;
|
|
43
|
+
const bytesize = model.input[inexcept++];
|
|
44
|
+
this.byteContainer.clear();
|
|
45
|
+
for (let i = inexcept; i < inexcept + Math.floor((bytesize + 3) / 4); i++)
|
|
46
|
+
this.byteContainer.writeInt32(model.input[i]);
|
|
47
|
+
// this.byteContainer.writeBytes(new Uint8Array(model.input).slice(inexcept, inexcept + (bytesize + 3) / 4));
|
|
48
|
+
inexcept += Math.floor((bytesize + 3) / 4);
|
|
49
|
+
const bitmap = model.input[inexcept++];
|
|
50
|
+
for (let k = 2; k <= 32; ++k) {
|
|
51
|
+
if ((bitmap & (1 << (k - 1))) != 0) {
|
|
52
|
+
const size = model.input[inexcept++];
|
|
53
|
+
const roudedup = (0, util_1.greatestMultiple)(size + 31, 32);
|
|
54
|
+
if (this.dataTobePacked[k].length < roudedup)
|
|
55
|
+
this.dataTobePacked[k] = new Uint32Array(roudedup);
|
|
56
|
+
if (inexcept + roudedup / 32 * k <= model.input.length) {
|
|
57
|
+
let j = 0;
|
|
58
|
+
for (; j < size; j += 32) {
|
|
59
|
+
(0, bitpacking_1.fastunpack)({ input: model.input, inpos: inexcept, output: this.dataTobePacked[k], outpos: j, bit: k });
|
|
60
|
+
inexcept += k;
|
|
61
|
+
}
|
|
62
|
+
const overflow = j - size;
|
|
63
|
+
inexcept -= Math.floor(overflow * k / 32);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
let j = 0;
|
|
67
|
+
const buf = new Uint32Array(roudedup / 32 * k);
|
|
68
|
+
const initinexcept = inexcept;
|
|
69
|
+
(0, util_1.arraycopy)(model.input, inexcept, buf, 0, model.input.length - inexcept);
|
|
70
|
+
for (; j < size; j += 32) {
|
|
71
|
+
(0, bitpacking_1.fastunpack)({ input: buf, inpos: inexcept - initinexcept, output: this.dataTobePacked[k], outpos: j, bit: k });
|
|
72
|
+
inexcept += k;
|
|
73
|
+
}
|
|
74
|
+
const overflow = j - size;
|
|
75
|
+
inexcept -= Math.floor(overflow * k / 32);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
this.dataPointers.fill(0);
|
|
80
|
+
let tmpoutpos = model.outpos.valueOf();
|
|
81
|
+
let tmpinpos = model.inpos.valueOf();
|
|
82
|
+
this.byteContainer.flip();
|
|
83
|
+
for (let run = 0, run_end = model.num / FastPFOR.BLOCK_SIZE; run < run_end; ++run, tmpoutpos += FastPFOR.BLOCK_SIZE) {
|
|
84
|
+
const b = this.byteContainer.readByte();
|
|
85
|
+
const cexcept = this.byteContainer.readByte() & 0xFF;
|
|
86
|
+
for (let k = 0; k < FastPFOR.BLOCK_SIZE; k += 32) {
|
|
87
|
+
(0, bitpacking_1.fastunpack)({ input: model.input, inpos: tmpinpos, output: model.output, outpos: tmpoutpos + k, bit: b });
|
|
88
|
+
tmpinpos += b;
|
|
89
|
+
}
|
|
90
|
+
if (cexcept > 0) {
|
|
91
|
+
const maxbits = this.byteContainer.readByte();
|
|
92
|
+
const index = maxbits - b;
|
|
93
|
+
if (index == 1) {
|
|
94
|
+
for (let k = 0; k < cexcept; ++k) {
|
|
95
|
+
const pos = this.byteContainer.readByte() & 0xFF;
|
|
96
|
+
model.output[pos + tmpoutpos] |= 1 << b;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
for (let k = 0; k < cexcept; ++k) {
|
|
101
|
+
const pos = this.byteContainer.readByte() & 0xFF;
|
|
102
|
+
const exceptValue = this.dataTobePacked[index][this.dataPointers[index]++];
|
|
103
|
+
model.output[pos + tmpoutpos] |= exceptValue << b;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
model.outpos = tmpoutpos;
|
|
109
|
+
model.inpos = inexcept;
|
|
110
|
+
}
|
|
111
|
+
uncompress(model) {
|
|
112
|
+
if (model.input.length == 0)
|
|
113
|
+
return;
|
|
114
|
+
const outlength = model.input[model.inpos];
|
|
115
|
+
model.inpos++;
|
|
116
|
+
this.headlessUncompress({ input: model.input, inpos: model.inpos, output: model.output, outpos: model.outpos, num: outlength });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.FastPFOR = FastPFOR;
|
|
120
|
+
FastPFOR.OVERHEAD_OF_EACH_EXCEPT = 8;
|
|
121
|
+
FastPFOR.DEFAULT_PAGE_SIZE = 65536;
|
|
122
|
+
FastPFOR.BLOCK_SIZE = 256;
|
|
123
|
+
//# sourceMappingURL=fastpfor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastpfor.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/fastpfor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SkippableIntegerCODEC } from "./codec";
|
|
2
|
+
export declare class SkippableComposition implements SkippableIntegerCODEC {
|
|
3
|
+
F1: SkippableIntegerCODEC;
|
|
4
|
+
F2: SkippableIntegerCODEC;
|
|
5
|
+
constructor(f1: SkippableIntegerCODEC, f2: SkippableIntegerCODEC);
|
|
6
|
+
headlessUncompress(model: {
|
|
7
|
+
input: Uint32Array;
|
|
8
|
+
inpos: number;
|
|
9
|
+
inlength: number;
|
|
10
|
+
output: Uint32Array;
|
|
11
|
+
outpos: number;
|
|
12
|
+
num: number;
|
|
13
|
+
}): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class FastPFORDecoder {
|
|
16
|
+
codec: SkippableIntegerCODEC;
|
|
17
|
+
constructor(codec: SkippableIntegerCODEC);
|
|
18
|
+
static default(): FastPFORDecoder;
|
|
19
|
+
uncompress(input: Uint32Array): Uint32Array;
|
|
20
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FastPFORDecoder = exports.SkippableComposition = void 0;
|
|
4
|
+
const fastpfor_1 = require("./fastpfor");
|
|
5
|
+
const varint_1 = require("./varint");
|
|
6
|
+
// When in doubt use FastPFORDecoder
|
|
7
|
+
class SkippableComposition {
|
|
8
|
+
constructor(f1, f2) {
|
|
9
|
+
this.F1 = f1;
|
|
10
|
+
this.F2 = f2;
|
|
11
|
+
}
|
|
12
|
+
headlessUncompress(model) {
|
|
13
|
+
const init = model.inpos;
|
|
14
|
+
const num = model.num;
|
|
15
|
+
this.F1.headlessUncompress(model);
|
|
16
|
+
if (model.inpos == init) {
|
|
17
|
+
model.inpos++;
|
|
18
|
+
}
|
|
19
|
+
model.inlength -= model.inpos - init;
|
|
20
|
+
model.num -= model.outpos;
|
|
21
|
+
this.F2.headlessUncompress(model);
|
|
22
|
+
model.num = num;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.SkippableComposition = SkippableComposition;
|
|
26
|
+
class FastPFORDecoder {
|
|
27
|
+
constructor(codec) {
|
|
28
|
+
this.codec = codec;
|
|
29
|
+
}
|
|
30
|
+
static default() {
|
|
31
|
+
return new FastPFORDecoder(new SkippableComposition(fastpfor_1.FastPFOR.default(), varint_1.VarInt.default()));
|
|
32
|
+
}
|
|
33
|
+
uncompress(input) {
|
|
34
|
+
const output = new Uint32Array(input[0]);
|
|
35
|
+
this.codec.headlessUncompress({
|
|
36
|
+
input: input,
|
|
37
|
+
inpos: 1,
|
|
38
|
+
inlength: input.length - 1,
|
|
39
|
+
output: output,
|
|
40
|
+
outpos: 0,
|
|
41
|
+
num: output.length
|
|
42
|
+
});
|
|
43
|
+
return output;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.FastPFORDecoder = FastPFORDecoder;
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,qCAAgC;AAGhC,oCAAoC;AAGpC,MAAa,oBAAoB;IAI7B,YAAmB,EAAyB,EAAE,EAAyB;QACnE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAEM,kBAAkB,CAAC,KAOzB;QACG,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAElC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IACpB,CAAC;CACJ;AA/BD,oDA+BC;AAED,MAAa,eAAe;IAGxB,YAAmB,KAA4B;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACM,MAAM,CAAC,OAAO;QACjB,OAAO,IAAI,eAAe,CAAC,IAAI,oBAAoB,CAC/C,mBAAQ,CAAC,OAAO,EAAE,EAClB,eAAM,CAAC,OAAO,EAAE,CACnB,CAAC,CAAC;IACP,CAAC;IAEM,UAAU,CAAC,KAAkB;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC1B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;YAC1B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA3BD,0CA2BC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.greatestMultiple = greatestMultiple;
|
|
4
|
+
exports.arraycopy = arraycopy;
|
|
5
|
+
function greatestMultiple(value, factor) {
|
|
6
|
+
return value - value % factor;
|
|
7
|
+
}
|
|
8
|
+
function arraycopy(src, srcPos, dest, destPos, length) {
|
|
9
|
+
if (srcPos < 0 || destPos < 0 || length < 0 || srcPos + length > src.length || destPos + length > dest.length) {
|
|
10
|
+
throw new Error('Invalid source or destination positions or length');
|
|
11
|
+
} // Todo: Necessary?
|
|
12
|
+
for (let i = 0; i < length; i++) {
|
|
13
|
+
dest[destPos + i] = src[srcPos + i];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/util.ts"],"names":[],"mappings":";;AACA,4CAEC;AAED,8BAQC;AAZD,SAAgB,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,OAAO,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAChC,CAAC;AAED,SAAgB,SAAS,CAAC,GAAgB,EAAE,MAAc,EAAE,IAAiB,EAAE,OAAe,EAAE,MAAc;IAC5G,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9G,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC,CAAC,mBAAmB;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IntegerCODEC, SkippableIntegerCODEC } from "./codec";
|
|
2
|
+
export declare class VarInt implements IntegerCODEC, SkippableIntegerCODEC {
|
|
3
|
+
static default(): VarInt;
|
|
4
|
+
private toNum;
|
|
5
|
+
private readVarintRemainder;
|
|
6
|
+
private uncompress_single;
|
|
7
|
+
uncompress(model: {
|
|
8
|
+
input: Uint32Array;
|
|
9
|
+
}): Uint32Array;
|
|
10
|
+
headlessUncompress(model: {
|
|
11
|
+
input: Uint32Array;
|
|
12
|
+
inpos: number;
|
|
13
|
+
inlength: number;
|
|
14
|
+
output: Uint32Array;
|
|
15
|
+
outpos: number;
|
|
16
|
+
num: number;
|
|
17
|
+
}): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VarInt = void 0;
|
|
4
|
+
//
|
|
5
|
+
// function toNum(low: number, high: number, isSigned: boolean): number {
|
|
6
|
+
// return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);
|
|
7
|
+
// }
|
|
8
|
+
//
|
|
9
|
+
// function readVarintRemainder(l: number, s: boolean, model: { input: Uint8Array, pos: number }): number {
|
|
10
|
+
// let h: number, b: number;
|
|
11
|
+
//
|
|
12
|
+
// b = model.input[model.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);
|
|
13
|
+
// b = model.input[model.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);
|
|
14
|
+
// b = model.input[model.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);
|
|
15
|
+
// b = model.input[model.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);
|
|
16
|
+
// b = model.input[model.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);
|
|
17
|
+
// b = model.input[model.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);
|
|
18
|
+
//
|
|
19
|
+
// throw new Error('Expected varint not more than 10 bytes');
|
|
20
|
+
// }
|
|
21
|
+
class VarInt {
|
|
22
|
+
static default() {
|
|
23
|
+
return new VarInt();
|
|
24
|
+
}
|
|
25
|
+
toNum(low, high, isSigned) {
|
|
26
|
+
return isSigned ? high * 0x100000000 + (low >>> 0) : ((high >>> 0) * 0x100000000) + (low >>> 0);
|
|
27
|
+
}
|
|
28
|
+
readVarintRemainder(val, isSigned, model) {
|
|
29
|
+
let h, b;
|
|
30
|
+
b = model.buffer[model.pos++];
|
|
31
|
+
h = (b & 0x70) >> 4;
|
|
32
|
+
if (b < 0x80)
|
|
33
|
+
return this.toNum(val, h, isSigned);
|
|
34
|
+
b = model.buffer[model.pos++];
|
|
35
|
+
h |= (b & 0x7f) << 3;
|
|
36
|
+
if (b < 0x80)
|
|
37
|
+
return this.toNum(val, h, isSigned);
|
|
38
|
+
b = model.buffer[model.pos++];
|
|
39
|
+
h |= (b & 0x7f) << 10;
|
|
40
|
+
if (b < 0x80)
|
|
41
|
+
return this.toNum(val, h, isSigned);
|
|
42
|
+
b = model.buffer[model.pos++];
|
|
43
|
+
h |= (b & 0x7f) << 17;
|
|
44
|
+
if (b < 0x80)
|
|
45
|
+
return this.toNum(val, h, isSigned);
|
|
46
|
+
b = model.buffer[model.pos++];
|
|
47
|
+
h |= (b & 0x7f) << 24;
|
|
48
|
+
if (b < 0x80)
|
|
49
|
+
return this.toNum(val, h, isSigned);
|
|
50
|
+
b = model.buffer[model.pos++];
|
|
51
|
+
h |= (b & 0x01) << 31;
|
|
52
|
+
if (b < 0x80)
|
|
53
|
+
return this.toNum(val, h, isSigned);
|
|
54
|
+
throw new Error('Expected varint not more than 10 bytes');
|
|
55
|
+
}
|
|
56
|
+
uncompress_single(model, isSigned = false) {
|
|
57
|
+
let val, b;
|
|
58
|
+
b = model.buffer[model.pos++];
|
|
59
|
+
val = b & 0x7f;
|
|
60
|
+
if (b < 0x80)
|
|
61
|
+
return val;
|
|
62
|
+
b = model.buffer[model.pos++];
|
|
63
|
+
val |= (b & 0x7f) << 7;
|
|
64
|
+
if (b < 0x80)
|
|
65
|
+
return val;
|
|
66
|
+
b = model.buffer[model.pos++];
|
|
67
|
+
val |= (b & 0x7f) << 14;
|
|
68
|
+
if (b < 0x80)
|
|
69
|
+
return val;
|
|
70
|
+
b = model.buffer[model.pos++];
|
|
71
|
+
val |= (b & 0x7f) << 21;
|
|
72
|
+
if (b < 0x80)
|
|
73
|
+
return val;
|
|
74
|
+
b = model.buffer[model.pos];
|
|
75
|
+
val |= (b & 0x0f) << 28;
|
|
76
|
+
return this.readVarintRemainder(val, isSigned, model);
|
|
77
|
+
}
|
|
78
|
+
uncompress(model) {
|
|
79
|
+
const output = new Uint32Array(model.input.length);
|
|
80
|
+
const tmp = new Uint8Array(model.input.buffer);
|
|
81
|
+
const inner_model = {
|
|
82
|
+
buffer: tmp,
|
|
83
|
+
pos: 0
|
|
84
|
+
};
|
|
85
|
+
for (let i = 0; inner_model.pos < model.input.length; i++) {
|
|
86
|
+
output[i] = this.uncompress_single(inner_model, false);
|
|
87
|
+
}
|
|
88
|
+
return output;
|
|
89
|
+
// const input = new Uint8Array(model.input.buffer);
|
|
90
|
+
//
|
|
91
|
+
// for (let i=0; i < model.input.length; i++) {
|
|
92
|
+
// model.output[i] = this.decode_single({ input: input, pos: i });
|
|
93
|
+
// }
|
|
94
|
+
}
|
|
95
|
+
headlessUncompress(model) {
|
|
96
|
+
let s = 0;
|
|
97
|
+
let val = 0;
|
|
98
|
+
let p = model.inpos;
|
|
99
|
+
let tmpoutpos = model.outpos;
|
|
100
|
+
const finaloutpos = model.num + tmpoutpos;
|
|
101
|
+
for (let v = 0, shift = 0; tmpoutpos < finaloutpos;) {
|
|
102
|
+
val = model.input[p];
|
|
103
|
+
const c = val >>> s;
|
|
104
|
+
// Shift to next byte
|
|
105
|
+
s += 8;
|
|
106
|
+
// Shift to next integer if s == 32
|
|
107
|
+
p += s >> 5;
|
|
108
|
+
// cycle from 31 to 0
|
|
109
|
+
s = s & 31;
|
|
110
|
+
v += ((c & 127) << shift);
|
|
111
|
+
if ((c & 128) === 128) {
|
|
112
|
+
model.output[tmpoutpos++] = v;
|
|
113
|
+
v = 0;
|
|
114
|
+
shift = 0;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
shift += 7;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
model.outpos = tmpoutpos;
|
|
121
|
+
model.inpos = p + (s !== 0 ? 1 : 0);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.VarInt = VarInt;
|
|
125
|
+
//# sourceMappingURL=varint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"varint.js","sourceRoot":"","sources":["../../../src/encodings/fastpfor/varint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decode FSST compressed data
|
|
3
|
+
*
|
|
4
|
+
* @param symbols Array of symbols, where each symbol can be between 1 and 8 bytes
|
|
5
|
+
* @param symbolLengths Array of symbol lengths, length of each symbol in symbols array
|
|
6
|
+
* @param compressedData FSST Compressed data, where each entry is an index to the symbols array
|
|
7
|
+
* @returns Decoded data as Uint8Array
|
|
8
|
+
*/
|
|
9
|
+
export declare function decodeFsst(symbols: Uint8Array, symbolLengths: Uint32Array, compressedData: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeFsst = decodeFsst;
|
|
4
|
+
/**
|
|
5
|
+
* Decode FSST compressed data
|
|
6
|
+
*
|
|
7
|
+
* @param symbols Array of symbols, where each symbol can be between 1 and 8 bytes
|
|
8
|
+
* @param symbolLengths Array of symbol lengths, length of each symbol in symbols array
|
|
9
|
+
* @param compressedData FSST Compressed data, where each entry is an index to the symbols array
|
|
10
|
+
* @returns Decoded data as Uint8Array
|
|
11
|
+
*/
|
|
12
|
+
//TODO: improve -> quick and dirty implementation
|
|
13
|
+
function decodeFsst(symbols, symbolLengths, compressedData) {
|
|
14
|
+
//TODO: use typed array directly
|
|
15
|
+
const decodedData = [];
|
|
16
|
+
const symbolOffsets = new Array(symbolLengths.length).fill(0);
|
|
17
|
+
for (let i = 1; i < symbolLengths.length; i++) {
|
|
18
|
+
symbolOffsets[i] = symbolOffsets[i - 1] + symbolLengths[i - 1];
|
|
19
|
+
}
|
|
20
|
+
for (let i = 0; i < compressedData.length; i++) {
|
|
21
|
+
if (compressedData[i] === 255) {
|
|
22
|
+
decodedData.push(compressedData[++i]);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const symbolLength = symbolLengths[compressedData[i]];
|
|
26
|
+
const symbolOffset = symbolOffsets[compressedData[i]];
|
|
27
|
+
for (let j = 0; j < symbolLength; j++) {
|
|
28
|
+
decodedData.push(symbols[symbolOffset + j]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return new Uint8Array(decodedData);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=fsstDecoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsstDecoder.js","sourceRoot":"","sources":["../../src/encodings/fsstDecoder.ts"],"names":[],"mappings":";;AASA,gCAqBC;AA9BD;;;;;;;GAOG;AACH,iDAAiD;AACjD,SAAgB,UAAU,CAAC,OAAmB,EAAE,aAA0B,EAAE,cAA0B;IAClG,gCAAgC;IAChC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GeometryVector } from "../vector/geometry/geometryVector";
|
|
2
|
+
import IntWrapper from "./intWrapper";
|
|
3
|
+
import { GpuVector } from "../vector/geometry/gpuVector";
|
|
4
|
+
import GeometryScaling from "./geometryScaling";
|
|
5
|
+
export declare function decodeGeometryColumn(tile: Uint8Array, numStreams: number, offset: IntWrapper, numFeatures: number, scalingData?: GeometryScaling): GeometryVector | GpuVector;
|