@maplibre/mlt 0.0.1-alpha.7 → 1.0.0
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/dist/{encodings → decoding}/decodingUtils.js +18 -33
- package/dist/decoding/decodingUtils.js.map +1 -0
- package/dist/decoding/decodingUtils.spec.d.ts +1 -0
- package/dist/decoding/decodingUtils.spec.js +125 -0
- package/dist/decoding/decodingUtils.spec.js.map +1 -0
- package/dist/{encodings → decoding}/fsstDecoder.js +1 -4
- package/dist/decoding/fsstDecoder.js.map +1 -0
- package/dist/decoding/fsstDecoder.spec.d.ts +1 -0
- package/dist/decoding/fsstDecoder.spec.js +36 -0
- package/dist/decoding/fsstDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/geometryDecoder.js +83 -101
- package/dist/decoding/geometryDecoder.js.map +1 -0
- package/dist/decoding/geometryDecoder.spec.d.ts +1 -0
- package/dist/decoding/geometryDecoder.spec.js +5 -0
- package/dist/decoding/geometryDecoder.spec.js.map +1 -0
- package/dist/decoding/geometryScaling.js +2 -0
- package/dist/decoding/geometryScaling.js.map +1 -0
- package/dist/{encodings → decoding}/intWrapper.js +2 -4
- package/dist/decoding/intWrapper.js.map +1 -0
- package/dist/{encodings → decoding}/integerDecodingUtils.d.ts +13 -0
- package/dist/{encodings → decoding}/integerDecodingUtils.js +127 -130
- package/dist/decoding/integerDecodingUtils.js.map +1 -0
- package/dist/decoding/integerDecodingUtils.spec.d.ts +1 -0
- package/dist/decoding/integerDecodingUtils.spec.js +194 -0
- package/dist/decoding/integerDecodingUtils.spec.js.map +1 -0
- package/dist/{encodings → decoding}/integerStreamDecoder.d.ts +1 -1
- package/dist/decoding/integerStreamDecoder.js +263 -0
- package/dist/decoding/integerStreamDecoder.js.map +1 -0
- package/dist/decoding/integerStreamDecoder.spec.d.ts +1 -0
- package/dist/decoding/integerStreamDecoder.spec.js +125 -0
- package/dist/decoding/integerStreamDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/propertyDecoder.d.ts +1 -1
- package/dist/decoding/propertyDecoder.js +140 -0
- package/dist/decoding/propertyDecoder.js.map +1 -0
- package/dist/decoding/propertyDecoder.spec.d.ts +1 -0
- package/dist/decoding/propertyDecoder.spec.js +682 -0
- package/dist/decoding/propertyDecoder.spec.js.map +1 -0
- package/dist/{encodings → decoding}/stringDecoder.d.ts +1 -1
- package/dist/decoding/stringDecoder.js +142 -0
- package/dist/decoding/stringDecoder.js.map +1 -0
- package/dist/decoding/stringDecoder.spec.d.ts +1 -0
- package/dist/decoding/stringDecoder.spec.js +311 -0
- package/dist/decoding/stringDecoder.spec.js.map +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.js +5 -18
- package/dist/index.js.map +1 -1
- package/dist/metadata/tile/dictionaryType.js +2 -5
- package/dist/metadata/tile/dictionaryType.js.map +1 -1
- package/dist/metadata/tile/lengthType.js +2 -5
- package/dist/metadata/tile/lengthType.js.map +1 -1
- package/dist/metadata/tile/logicalLevelTechnique.js +2 -5
- package/dist/metadata/tile/logicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/logicalStreamType.d.ts +3 -3
- package/dist/metadata/tile/logicalStreamType.js +4 -5
- package/dist/metadata/tile/logicalStreamType.js.map +1 -1
- package/dist/metadata/tile/mortonEncodedStreamMetadata.d.ts +6 -6
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js +8 -10
- package/dist/metadata/tile/mortonEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/offsetType.js +2 -5
- package/dist/metadata/tile/offsetType.js.map +1 -1
- package/dist/metadata/tile/physicalLevelTechnique.js +2 -5
- package/dist/metadata/tile/physicalLevelTechnique.js.map +1 -1
- package/dist/metadata/tile/physicalStreamType.js +2 -5
- package/dist/metadata/tile/physicalStreamType.js.map +1 -1
- package/dist/metadata/tile/rleEncodedStreamMetadata.d.ts +10 -6
- package/dist/metadata/tile/rleEncodedStreamMetadata.js +14 -10
- package/dist/metadata/tile/rleEncodedStreamMetadata.js.map +1 -1
- package/dist/metadata/tile/scalarType.js +2 -5
- package/dist/metadata/tile/scalarType.js.map +1 -1
- package/dist/metadata/tile/streamMetadata.d.ts +11 -5
- package/dist/metadata/tile/streamMetadata.js +35 -24
- package/dist/metadata/tile/streamMetadata.js.map +1 -1
- package/dist/metadata/tile/streamMetadataDecoder.d.ts +2 -2
- package/dist/metadata/tile/streamMetadataDecoder.js +13 -17
- package/dist/metadata/tile/streamMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.d.ts +2 -2
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js +40 -32
- package/dist/metadata/tileset/embeddedTilesetMetadataDecoder.js.map +1 -1
- package/dist/metadata/tileset/tilesetMetadata.d.ts +80 -0
- package/dist/metadata/tileset/tilesetMetadata.js +29 -0
- package/dist/metadata/tileset/tilesetMetadata.js.map +1 -0
- package/dist/metadata/tileset/typeMap.d.ts +1 -1
- package/dist/metadata/tileset/typeMap.js +63 -59
- package/dist/metadata/tileset/typeMap.js.map +1 -1
- package/dist/mltDecoder.d.ts +1 -1
- package/dist/mltDecoder.js +58 -64
- package/dist/mltDecoder.js.map +1 -1
- package/dist/mltDecoder.spec.d.ts +1 -0
- package/dist/mltDecoder.spec.js +152 -0
- package/dist/mltDecoder.spec.js.map +1 -0
- package/dist/mltMetadata.js +4 -7
- package/dist/mltMetadata.js.map +1 -1
- package/dist/vector/constant/intConstVector.d.ts +0 -13
- package/dist/vector/constant/intConstVector.js +2 -81
- package/dist/vector/constant/intConstVector.js.map +1 -1
- package/dist/vector/constant/longConstVector.d.ts +0 -13
- package/dist/vector/constant/longConstVector.js +2 -79
- package/dist/vector/constant/longConstVector.js.map +1 -1
- package/dist/vector/dictionary/stringDictionaryVector.d.ts +0 -14
- package/dist/vector/dictionary/stringDictionaryVector.js +6 -167
- package/dist/vector/dictionary/stringDictionaryVector.js.map +1 -1
- package/dist/vector/featureTable.d.ts +4 -0
- package/dist/vector/featureTable.js +48 -12
- package/dist/vector/featureTable.js.map +1 -1
- package/dist/vector/fixedSizeVector.js +2 -9
- package/dist/vector/fixedSizeVector.js.map +1 -1
- package/dist/vector/flat/bitVector.js +3 -4
- package/dist/vector/flat/bitVector.js.map +1 -1
- package/dist/vector/flat/booleanFlatVector.d.ts +0 -13
- package/dist/vector/flat/booleanFlatVector.js +3 -46
- package/dist/vector/flat/booleanFlatVector.js.map +1 -1
- package/dist/vector/flat/doubleFlatVector.d.ts +0 -13
- package/dist/vector/flat/doubleFlatVector.js +2 -101
- package/dist/vector/flat/doubleFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.d.ts +0 -13
- package/dist/vector/flat/floatFlatVector.js +2 -101
- package/dist/vector/flat/floatFlatVector.js.map +1 -1
- package/dist/vector/flat/floatFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/floatFlatVector.spec.js +14 -0
- package/dist/vector/flat/floatFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/intFlatVector.d.ts +0 -13
- package/dist/vector/flat/intFlatVector.js +2 -115
- package/dist/vector/flat/intFlatVector.js.map +1 -1
- package/dist/vector/flat/intFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/intFlatVector.spec.js +15 -0
- package/dist/vector/flat/intFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/longFlatVector.d.ts +0 -13
- package/dist/vector/flat/longFlatVector.js +2 -116
- package/dist/vector/flat/longFlatVector.js.map +1 -1
- package/dist/vector/flat/longFlatVector.spec.d.ts +1 -0
- package/dist/vector/flat/longFlatVector.spec.js +14 -0
- package/dist/vector/flat/longFlatVector.spec.js.map +1 -0
- package/dist/vector/flat/stringFlatVector.d.ts +0 -13
- package/dist/vector/flat/stringFlatVector.js +5 -155
- package/dist/vector/flat/stringFlatVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.d.ts +0 -13
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js +14 -51
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.js.map +1 -1
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.d.ts +1 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js +28 -0
- package/dist/vector/fsst-dictionary/stringFsstDictionaryVector.spec.js.map +1 -0
- package/dist/vector/geometry/constGeometryVector.d.ts +0 -4
- package/dist/vector/geometry/constGeometryVector.js +9 -30
- package/dist/vector/geometry/constGeometryVector.js.map +1 -1
- package/dist/vector/geometry/constGpuVector.d.ts +0 -4
- package/dist/vector/geometry/constGpuVector.js +4 -25
- package/dist/vector/geometry/constGpuVector.js.map +1 -1
- package/dist/vector/geometry/flatGeometryVector.d.ts +0 -4
- package/dist/vector/geometry/flatGeometryVector.js +8 -36
- package/dist/vector/geometry/flatGeometryVector.js.map +1 -1
- package/dist/vector/geometry/flatGpuVector.d.ts +0 -4
- package/dist/vector/geometry/flatGpuVector.js +3 -29
- package/dist/vector/geometry/flatGpuVector.js.map +1 -1
- package/dist/vector/geometry/geometryType.js +4 -7
- package/dist/vector/geometry/geometryType.js.map +1 -1
- package/dist/vector/geometry/geometryVector.d.ts +8 -7
- package/dist/vector/geometry/geometryVector.js +13 -14
- package/dist/vector/geometry/geometryVector.js.map +1 -1
- package/dist/vector/geometry/geometryVectorConverter.d.ts +2 -2
- package/dist/vector/geometry/geometryVectorConverter.js +38 -41
- package/dist/vector/geometry/geometryVectorConverter.js.map +1 -1
- package/dist/vector/geometry/gpuVector.d.ts +8 -7
- package/dist/vector/geometry/gpuVector.js +97 -13
- package/dist/vector/geometry/gpuVector.js.map +1 -1
- package/dist/vector/geometry/spaceFillingCurve.js +10 -5
- package/dist/vector/geometry/spaceFillingCurve.js.map +1 -1
- package/dist/vector/geometry/topologyVector.js +4 -4
- package/dist/vector/geometry/topologyVector.js.map +1 -1
- package/dist/vector/geometry/vertexBufferType.js +2 -5
- package/dist/vector/geometry/vertexBufferType.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.d.ts +1 -1
- package/dist/vector/geometry/zOrderCurve.js +3 -9
- package/dist/vector/geometry/zOrderCurve.js.map +1 -1
- package/dist/vector/geometry/zOrderCurve.spec.d.ts +1 -0
- package/dist/vector/geometry/zOrderCurve.spec.js +14 -0
- package/dist/vector/geometry/zOrderCurve.spec.js.map +1 -0
- package/dist/vector/intVector.js +1 -2
- package/dist/vector/sequence/intSequenceVector.d.ts +0 -13
- package/dist/vector/sequence/intSequenceVector.js +2 -64
- package/dist/vector/sequence/intSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVector.d.ts +0 -13
- package/dist/vector/sequence/longSequenceVector.js +2 -49
- package/dist/vector/sequence/longSequenceVector.js.map +1 -1
- package/dist/vector/sequence/longSequenceVektor.spec.d.ts +1 -0
- package/dist/vector/sequence/longSequenceVektor.spec.js +11 -0
- package/dist/vector/sequence/longSequenceVektor.spec.js.map +1 -0
- package/dist/vector/sequence/sequenceVector.js +3 -9
- package/dist/vector/sequence/sequenceVector.js.map +1 -1
- package/dist/vector/variableSizeVector.js +3 -9
- package/dist/vector/variableSizeVector.js.map +1 -1
- package/dist/vector/vector.d.ts +0 -17
- package/dist/vector/vector.js +6 -49
- package/dist/vector/vector.js.map +1 -1
- package/dist/vector/vectorType.js +2 -5
- package/dist/vector/vectorType.js.map +1 -1
- package/package.json +10 -31
- package/dist/encodings/decodingUtils.js.map +0 -1
- package/dist/encodings/doubleDecoder.d.ts +0 -4
- package/dist/encodings/doubleDecoder.js +0 -22
- package/dist/encodings/doubleDecoder.js.map +0 -1
- package/dist/encodings/fastpfor/bitpacking.d.ts +0 -51
- package/dist/encodings/fastpfor/bitpacking.js +0 -4444
- package/dist/encodings/fastpfor/bitpacking.js.map +0 -1
- package/dist/encodings/fastpfor/codec.d.ts +0 -19
- package/dist/encodings/fastpfor/codec.js +0 -3
- package/dist/encodings/fastpfor/codec.js.map +0 -1
- package/dist/encodings/fastpfor/fastpfor.d.ts +0 -38
- package/dist/encodings/fastpfor/fastpfor.js +0 -123
- package/dist/encodings/fastpfor/fastpfor.js.map +0 -1
- package/dist/encodings/fastpfor/index.d.ts +0 -20
- package/dist/encodings/fastpfor/index.js +0 -47
- package/dist/encodings/fastpfor/index.js.map +0 -1
- package/dist/encodings/fastpfor/util.d.ts +0 -2
- package/dist/encodings/fastpfor/util.js +0 -16
- package/dist/encodings/fastpfor/util.js.map +0 -1
- package/dist/encodings/fastpfor/varint.d.ts +0 -18
- package/dist/encodings/fastpfor/varint.js +0 -125
- package/dist/encodings/fastpfor/varint.js.map +0 -1
- package/dist/encodings/fsstDecoder.js.map +0 -1
- package/dist/encodings/geometryDecoder.js.map +0 -1
- package/dist/encodings/geometryScaling.js +0 -3
- package/dist/encodings/geometryScaling.js.map +0 -1
- package/dist/encodings/intWrapper.js.map +0 -1
- package/dist/encodings/integerDecodingUtils.js.map +0 -1
- package/dist/encodings/integerStreamDecoder.js +0 -254
- package/dist/encodings/integerStreamDecoder.js.map +0 -1
- package/dist/encodings/propertyDecoder.js +0 -146
- package/dist/encodings/propertyDecoder.js.map +0 -1
- package/dist/encodings/stringDecoder.js +0 -147
- package/dist/encodings/stringDecoder.js.map +0 -1
- package/dist/metadata/tileset/tilesetMetadata.g.d.ts +0 -418
- package/dist/metadata/tileset/tilesetMetadata.g.js +0 -476
- package/dist/metadata/tileset/tilesetMetadata.g.js.map +0 -1
- package/dist/vector/filter/constSelectionVector.d.ts +0 -0
- package/dist/vector/filter/constSelectionVector.js +0 -1
- package/dist/vector/filter/constSelectionVector.js.map +0 -1
- package/dist/vector/filter/flatSelectionVector.d.ts +0 -16
- package/dist/vector/filter/flatSelectionVector.js +0 -42
- package/dist/vector/filter/flatSelectionVector.js.map +0 -1
- package/dist/vector/filter/selectionVector.d.ts +0 -8
- package/dist/vector/filter/selectionVector.js +0 -3
- package/dist/vector/filter/selectionVector.js.map +0 -1
- package/dist/vector/filter/selectionVectorUtils.d.ts +0 -7
- package/dist/vector/filter/selectionVectorUtils.js +0 -44
- package/dist/vector/filter/selectionVectorUtils.js.map +0 -1
- package/dist/vector/filter/sequenceSelectionVector.d.ts +0 -0
- package/dist/vector/filter/sequenceSelectionVector.js +0 -1
- package/dist/vector/filter/sequenceSelectionVector.js.map +0 -1
- package/dist/vector/geometry/point.d.ts +0 -195
- package/dist/vector/geometry/point.js +0 -283
- package/dist/vector/geometry/point.js.map +0 -1
- /package/dist/{encodings → decoding}/decodingUtils.d.ts +0 -0
- /package/dist/{encodings → decoding}/fsstDecoder.d.ts +0 -0
- /package/dist/{encodings → decoding}/geometryDecoder.d.ts +0 -0
- /package/dist/{encodings → decoding}/geometryScaling.d.ts +0 -0
- /package/dist/{encodings → decoding}/intWrapper.d.ts +0 -0
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const physicalLevelTechnique_1 = require("../metadata/tile/physicalLevelTechnique");
|
|
7
|
-
const integerDecodingUtils_1 = require("./integerDecodingUtils");
|
|
8
|
-
const logicalLevelTechnique_1 = require("../metadata/tile/logicalLevelTechnique");
|
|
9
|
-
const bitVector_1 = __importDefault(require("../vector/flat/bitVector"));
|
|
10
|
-
const vectorType_1 = require("../vector/vectorType");
|
|
11
|
-
class IntegerStreamDecoder {
|
|
12
|
-
constructor() { }
|
|
13
|
-
static decodeIntStream(data, offset, streamMetadata, isSigned, scalingData) {
|
|
14
|
-
const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
15
|
-
return this.decodeIntBuffer(values, streamMetadata, isSigned, scalingData);
|
|
16
|
-
}
|
|
17
|
-
static decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata) {
|
|
18
|
-
const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
19
|
-
return this.decodeLengthToOffsetBuffer(values, streamMetadata);
|
|
20
|
-
}
|
|
21
|
-
static decodePhysicalLevelTechnique(data, offset, streamMetadata) {
|
|
22
|
-
const physicalLevelTechnique = streamMetadata.physicalLevelTechnique;
|
|
23
|
-
if (physicalLevelTechnique === physicalLevelTechnique_1.PhysicalLevelTechnique.VARINT) {
|
|
24
|
-
return (0, integerDecodingUtils_1.decodeVarintInt32)(data, offset, streamMetadata.numValues);
|
|
25
|
-
}
|
|
26
|
-
if (physicalLevelTechnique === physicalLevelTechnique_1.PhysicalLevelTechnique.NONE) {
|
|
27
|
-
const dataOffset = offset.get();
|
|
28
|
-
const byteLength = streamMetadata.byteLength;
|
|
29
|
-
offset.add(byteLength);
|
|
30
|
-
//TODO: use Byte Rle for geometry type encoding
|
|
31
|
-
const slice = data.subarray(dataOffset, offset.get());
|
|
32
|
-
return new Int32Array(slice);
|
|
33
|
-
}
|
|
34
|
-
throw new Error("Specified physicalLevelTechnique is not supported (yet).");
|
|
35
|
-
}
|
|
36
|
-
static decodeConstIntStream(data, offset, streamMetadata, isSigned) {
|
|
37
|
-
const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
38
|
-
if (values.length === 1) {
|
|
39
|
-
const value = values[0];
|
|
40
|
-
return isSigned ? (0, integerDecodingUtils_1.decodeZigZagValue)(value) : value;
|
|
41
|
-
}
|
|
42
|
-
return isSigned
|
|
43
|
-
? (0, integerDecodingUtils_1.decodeZigZagConstRle)(values)
|
|
44
|
-
: (0, integerDecodingUtils_1.decodeUnsignedConstRle)(values);
|
|
45
|
-
}
|
|
46
|
-
static decodeSequenceIntStream(data, offset, streamMetadata) {
|
|
47
|
-
const values = IntegerStreamDecoder.decodePhysicalLevelTechnique(data, offset, streamMetadata);
|
|
48
|
-
return (0, integerDecodingUtils_1.decodeZigZagSequenceRle)(values);
|
|
49
|
-
}
|
|
50
|
-
static decodeSequenceLongStream(data, offset, streamMetadata) {
|
|
51
|
-
const values = (0, integerDecodingUtils_1.decodeVarintInt64)(data, offset, streamMetadata.numValues);
|
|
52
|
-
return (0, integerDecodingUtils_1.decodeZigZagSequenceRleInt64)(values);
|
|
53
|
-
}
|
|
54
|
-
static decodeLongStream(data, offset, streamMetadata, isSigned) {
|
|
55
|
-
const values = (0, integerDecodingUtils_1.decodeVarintInt64)(data, offset, streamMetadata.numValues);
|
|
56
|
-
return this.decodeLongBuffer(values, streamMetadata, isSigned);
|
|
57
|
-
}
|
|
58
|
-
static decodeLongFloat64Stream(data, offset, streamMetadata, isSigned) {
|
|
59
|
-
const values = (0, integerDecodingUtils_1.decodeVarintFloat64)(data, streamMetadata.numValues, offset);
|
|
60
|
-
return this.decodeFloat64Buffer(values, streamMetadata, isSigned);
|
|
61
|
-
}
|
|
62
|
-
static decodeConstLongStream(data, offset, streamMetadata, isSigned) {
|
|
63
|
-
const values = (0, integerDecodingUtils_1.decodeVarintInt64)(data, offset, streamMetadata.numValues);
|
|
64
|
-
if (values.length === 1) {
|
|
65
|
-
const value = values[0];
|
|
66
|
-
return isSigned ? (0, integerDecodingUtils_1.decodeZigZagValueInt64)(value) : value;
|
|
67
|
-
}
|
|
68
|
-
return isSigned ? (0, integerDecodingUtils_1.decodeZigZagConstRleInt64)(values) : (0, integerDecodingUtils_1.decodeUnsignedConstRleInt64)(values);
|
|
69
|
-
}
|
|
70
|
-
static decodeIntBuffer(values, streamMetadata, isSigned, scalingData) {
|
|
71
|
-
/*
|
|
72
|
-
* Currently the encoder uses only fixed combinations of encodings.
|
|
73
|
-
* For performance reasons it is also used a fixed combination of the encodings on the decoding side.
|
|
74
|
-
* The following encodings and combinations are used:
|
|
75
|
-
* - Morton Delta -> always sorted so not ZigZag encoding needed
|
|
76
|
-
* - Delta -> currently always in combination with ZigZag encoding
|
|
77
|
-
* - Rle -> in combination with ZigZag encoding if data type is signed
|
|
78
|
-
* - Delta Rle
|
|
79
|
-
* - Componentwise Delta -> always ZigZag encoding is used
|
|
80
|
-
* */
|
|
81
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
82
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.DELTA:
|
|
83
|
-
if (streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
84
|
-
const rleMetadata = streamMetadata;
|
|
85
|
-
values = (0, integerDecodingUtils_1.decodeUnsignedRle)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
86
|
-
}
|
|
87
|
-
(0, integerDecodingUtils_1.decodeZigZagDelta)(values);
|
|
88
|
-
return values;
|
|
89
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.RLE:
|
|
90
|
-
return (0, integerDecodingUtils_1.decodeRle)(values, streamMetadata, isSigned);
|
|
91
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.MORTON:
|
|
92
|
-
(0, integerDecodingUtils_1.fastInverseDelta)(values);
|
|
93
|
-
return values;
|
|
94
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
95
|
-
if (scalingData) {
|
|
96
|
-
(0, integerDecodingUtils_1.decodeComponentwiseDeltaVec2Scaled)(values, scalingData.scale, scalingData.min, scalingData.max);
|
|
97
|
-
return values;
|
|
98
|
-
}
|
|
99
|
-
(0, integerDecodingUtils_1.decodeComponentwiseDeltaVec2)(values);
|
|
100
|
-
return values;
|
|
101
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.NONE:
|
|
102
|
-
if (isSigned) {
|
|
103
|
-
(0, integerDecodingUtils_1.decodeZigZag)(values);
|
|
104
|
-
}
|
|
105
|
-
return values;
|
|
106
|
-
default:
|
|
107
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
static decodeLongBuffer(values, streamMetadata, isSigned) {
|
|
111
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
112
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.DELTA:
|
|
113
|
-
if (streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
114
|
-
const rleMetadata = streamMetadata;
|
|
115
|
-
values = (0, integerDecodingUtils_1.decodeUnsignedRleInt64)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
116
|
-
}
|
|
117
|
-
(0, integerDecodingUtils_1.decodeZigZagDeltaInt64)(values);
|
|
118
|
-
return values;
|
|
119
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.RLE:
|
|
120
|
-
return (0, integerDecodingUtils_1.decodeRleInt64)(values, streamMetadata, isSigned);
|
|
121
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.NONE:
|
|
122
|
-
if (isSigned) {
|
|
123
|
-
(0, integerDecodingUtils_1.decodeZigZagInt64)(values);
|
|
124
|
-
}
|
|
125
|
-
return values;
|
|
126
|
-
default:
|
|
127
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
static decodeFloat64Buffer(values, streamMetadata, isSigned) {
|
|
131
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
132
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.DELTA:
|
|
133
|
-
if (streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
134
|
-
const rleMetadata = streamMetadata;
|
|
135
|
-
values = (0, integerDecodingUtils_1.decodeUnsignedRleFloat64)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
136
|
-
}
|
|
137
|
-
(0, integerDecodingUtils_1.decodeZigZagDeltaFloat64)(values);
|
|
138
|
-
return values;
|
|
139
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.RLE:
|
|
140
|
-
return (0, integerDecodingUtils_1.decodeRleFloat64)(values, streamMetadata, isSigned);
|
|
141
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.NONE:
|
|
142
|
-
if (isSigned) {
|
|
143
|
-
(0, integerDecodingUtils_1.decodeZigZagFloat64)(values);
|
|
144
|
-
}
|
|
145
|
-
return values;
|
|
146
|
-
default:
|
|
147
|
-
throw new Error(`The specified Logical level technique is not supported: ${streamMetadata.logicalLevelTechnique1}`);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
static decodeLengthToOffsetBuffer(values, streamMetadata) {
|
|
151
|
-
if (streamMetadata.logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.DELTA && streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.NONE) {
|
|
152
|
-
const decodedValues = (0, integerDecodingUtils_1.zigZagDeltaOfDeltaDecoding)(values);
|
|
153
|
-
return decodedValues;
|
|
154
|
-
}
|
|
155
|
-
if (streamMetadata.logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE && streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.NONE) {
|
|
156
|
-
const rleMetadata = streamMetadata;
|
|
157
|
-
const decodedValues = (0, integerDecodingUtils_1.rleDeltaDecoding)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
158
|
-
return decodedValues;
|
|
159
|
-
}
|
|
160
|
-
if (streamMetadata.logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.NONE && streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.NONE) {
|
|
161
|
-
//TODO: use fastInverseDelta again and check what are the performance problems in zoom 14
|
|
162
|
-
//fastInverseDelta(values);
|
|
163
|
-
(0, integerDecodingUtils_1.inverseDelta)(values);
|
|
164
|
-
const offsets = new Int32Array(streamMetadata.numValues + 1);
|
|
165
|
-
offsets[0] = 0;
|
|
166
|
-
offsets.set(values, 1);
|
|
167
|
-
return offsets;
|
|
168
|
-
}
|
|
169
|
-
if (streamMetadata.logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.DELTA && streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
170
|
-
const rleMetadata = streamMetadata;
|
|
171
|
-
const decodedValues = (0, integerDecodingUtils_1.zigZagRleDeltaDecoding)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
172
|
-
(0, integerDecodingUtils_1.fastInverseDelta)(decodedValues);
|
|
173
|
-
return decodedValues;
|
|
174
|
-
}
|
|
175
|
-
throw new Error("Only delta encoding is supported for transforming length to offset streams yet.");
|
|
176
|
-
}
|
|
177
|
-
static decodeNullableIntStream(data, offset, streamMetadata, isSigned, bitVector) {
|
|
178
|
-
const values = streamMetadata.physicalLevelTechnique === physicalLevelTechnique_1.PhysicalLevelTechnique.FAST_PFOR
|
|
179
|
-
? (0, integerDecodingUtils_1.decodeFastPfor)(data, streamMetadata.numValues, streamMetadata.byteLength, offset)
|
|
180
|
-
: (0, integerDecodingUtils_1.decodeVarintInt32)(data, offset, streamMetadata.numValues);
|
|
181
|
-
return this.decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector);
|
|
182
|
-
}
|
|
183
|
-
static decodeNullableLongStream(data, offset, streamMetadata, isSigned, bitVector) {
|
|
184
|
-
const values = (0, integerDecodingUtils_1.decodeVarintInt64)(data, offset, streamMetadata.numValues);
|
|
185
|
-
return this.decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector);
|
|
186
|
-
}
|
|
187
|
-
static decodeNullableIntBuffer(values, streamMetadata, isSigned, bitVector) {
|
|
188
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
189
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.DELTA:
|
|
190
|
-
if (streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
191
|
-
const rleMetadata = streamMetadata;
|
|
192
|
-
values = (0, integerDecodingUtils_1.decodeUnsignedRle)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
193
|
-
}
|
|
194
|
-
return (0, integerDecodingUtils_1.decodeNullableZigZagDelta)(bitVector, values);
|
|
195
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.RLE:
|
|
196
|
-
return (0, integerDecodingUtils_1.decodeNullableRle)(values, streamMetadata, isSigned, bitVector);
|
|
197
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.MORTON:
|
|
198
|
-
(0, integerDecodingUtils_1.fastInverseDelta)(values);
|
|
199
|
-
return values;
|
|
200
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.COMPONENTWISE_DELTA:
|
|
201
|
-
(0, integerDecodingUtils_1.decodeComponentwiseDeltaVec2)(values);
|
|
202
|
-
return values;
|
|
203
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.NONE:
|
|
204
|
-
values = isSigned
|
|
205
|
-
? (0, integerDecodingUtils_1.padZigZagWithZeros)(bitVector, values)
|
|
206
|
-
: (0, integerDecodingUtils_1.padWithZeros)(bitVector, values);
|
|
207
|
-
return values;
|
|
208
|
-
default:
|
|
209
|
-
throw new Error("The specified Logical level technique is not supported");
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
static decodeNullableLongBuffer(values, streamMetadata, isSigned, bitVector) {
|
|
213
|
-
switch (streamMetadata.logicalLevelTechnique1) {
|
|
214
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.DELTA:
|
|
215
|
-
if (streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
216
|
-
const rleMetadata = streamMetadata;
|
|
217
|
-
values = (0, integerDecodingUtils_1.decodeUnsignedRleInt64)(values, rleMetadata.runs, rleMetadata.numRleValues);
|
|
218
|
-
}
|
|
219
|
-
return (0, integerDecodingUtils_1.decodeNullableZigZagDeltaInt64)(bitVector, values);
|
|
220
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.RLE:
|
|
221
|
-
return (0, integerDecodingUtils_1.decodeNullableRleInt64)(values, streamMetadata, isSigned, bitVector);
|
|
222
|
-
case logicalLevelTechnique_1.LogicalLevelTechnique.NONE:
|
|
223
|
-
values = isSigned
|
|
224
|
-
? (0, integerDecodingUtils_1.padZigZagWithZerosInt64)(bitVector, values)
|
|
225
|
-
: (0, integerDecodingUtils_1.padWithZerosInt64)(bitVector, values);
|
|
226
|
-
return values;
|
|
227
|
-
default:
|
|
228
|
-
throw new Error("The specified Logical level technique is not supported");
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
static getVectorType(streamMetadata, sizeOrNullabilityBuffer) {
|
|
232
|
-
const logicalLevelTechnique1 = streamMetadata.logicalLevelTechnique1;
|
|
233
|
-
if (logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE) {
|
|
234
|
-
return streamMetadata.runs === 1
|
|
235
|
-
? vectorType_1.VectorType.CONST
|
|
236
|
-
: vectorType_1.VectorType.FLAT;
|
|
237
|
-
}
|
|
238
|
-
const numFeatures = sizeOrNullabilityBuffer instanceof bitVector_1.default ? sizeOrNullabilityBuffer.size() :
|
|
239
|
-
sizeOrNullabilityBuffer;
|
|
240
|
-
const rleMetadata = streamMetadata;
|
|
241
|
-
const runs = rleMetadata.runs;
|
|
242
|
-
if (logicalLevelTechnique1 === logicalLevelTechnique_1.LogicalLevelTechnique.DELTA
|
|
243
|
-
&& streamMetadata.logicalLevelTechnique2 === logicalLevelTechnique_1.LogicalLevelTechnique.RLE
|
|
244
|
-
/* If base value equals delta value then one run else two runs */
|
|
245
|
-
&& (runs === 1 || runs === 2)
|
|
246
|
-
/* No null values allowed in a sequence vector */
|
|
247
|
-
&& rleMetadata.numValues === numFeatures) {
|
|
248
|
-
return vectorType_1.VectorType.SEQUENCE;
|
|
249
|
-
}
|
|
250
|
-
return streamMetadata.numValues === 1 ? vectorType_1.VectorType.CONST : vectorType_1.VectorType.FLAT;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
exports.default = IntegerStreamDecoder;
|
|
254
|
-
//# sourceMappingURL=integerStreamDecoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"integerStreamDecoder.js","sourceRoot":"","sources":["../../src/encodings/integerStreamDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.decodePropertyColumn = decodePropertyColumn;
|
|
7
|
-
const tilesetMetadata_g_1 = require("../metadata/tileset/tilesetMetadata.g");
|
|
8
|
-
const bitVector_1 = __importDefault(require("../vector/flat/bitVector"));
|
|
9
|
-
const streamMetadataDecoder_1 = require("../metadata/tile/streamMetadataDecoder");
|
|
10
|
-
const vectorType_1 = require("../vector/vectorType");
|
|
11
|
-
const booleanFlatVector_1 = require("../vector/flat/booleanFlatVector");
|
|
12
|
-
const doubleFlatVector_1 = require("../vector/flat/doubleFlatVector");
|
|
13
|
-
const floatFlatVector_1 = require("../vector/flat/floatFlatVector");
|
|
14
|
-
const longConstVector_1 = require("../vector/constant/longConstVector");
|
|
15
|
-
const longFlatVector_1 = require("../vector/flat/longFlatVector");
|
|
16
|
-
const intFlatVector_1 = require("../vector/flat/intFlatVector");
|
|
17
|
-
const intConstVector_1 = require("../vector/constant/intConstVector");
|
|
18
|
-
const decodingUtils_1 = require("./decodingUtils");
|
|
19
|
-
const integerStreamDecoder_1 = __importDefault(require("./integerStreamDecoder"));
|
|
20
|
-
const stringDecoder_1 = require("./stringDecoder");
|
|
21
|
-
const intSequenceVector_1 = require("../vector/sequence/intSequenceVector");
|
|
22
|
-
const longSequenceVector_1 = require("../vector/sequence/longSequenceVector");
|
|
23
|
-
function decodePropertyColumn(data, offset, columnMetadata, numStreams, numFeatures, propertyColumnNames) {
|
|
24
|
-
if (columnMetadata.type.case === "scalarType") {
|
|
25
|
-
if (propertyColumnNames && !propertyColumnNames.has(columnMetadata.name)) {
|
|
26
|
-
(0, decodingUtils_1.skipColumn)(numStreams, data, offset);
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
return decodeScalarPropertyColumn(numStreams, data, offset, numFeatures, columnMetadata.type.value, columnMetadata);
|
|
30
|
-
}
|
|
31
|
-
if (numStreams != 1) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
return stringDecoder_1.StringDecoder.decodeSharedDictionary(data, offset, columnMetadata, numFeatures, propertyColumnNames);
|
|
35
|
-
}
|
|
36
|
-
function decodeScalarPropertyColumn(numStreams, data, offset, numFeatures, column, columnMetadata) {
|
|
37
|
-
let nullabilityBuffer = null;
|
|
38
|
-
let numValues = 0;
|
|
39
|
-
if (numStreams === 0) {
|
|
40
|
-
/* Skip since this column has no values */
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
// Read nullability stream if column is nullable
|
|
44
|
-
if (columnMetadata.nullable) {
|
|
45
|
-
const presentStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
46
|
-
numValues = presentStreamMetadata.numValues;
|
|
47
|
-
const streamDataStart = offset.get();
|
|
48
|
-
// Decode the RLE boolean data
|
|
49
|
-
const presentVector = (0, decodingUtils_1.decodeBooleanRle)(data, numValues, offset);
|
|
50
|
-
// FIX: decodeBooleanRle doesn't consume all bytes!
|
|
51
|
-
// We must advance to the end of the stream using byteLength from metadata
|
|
52
|
-
offset.set(streamDataStart + presentStreamMetadata.byteLength);
|
|
53
|
-
nullabilityBuffer = new bitVector_1.default(presentVector, presentStreamMetadata.numValues);
|
|
54
|
-
}
|
|
55
|
-
const sizeOrNullabilityBuffer = nullabilityBuffer ?? numFeatures;
|
|
56
|
-
const scalarType = column.type.value;
|
|
57
|
-
switch (scalarType) {
|
|
58
|
-
case tilesetMetadata_g_1.ScalarType.UINT_32:
|
|
59
|
-
case tilesetMetadata_g_1.ScalarType.INT_32:
|
|
60
|
-
return decodeIntColumn(data, offset, columnMetadata, column, sizeOrNullabilityBuffer);
|
|
61
|
-
case tilesetMetadata_g_1.ScalarType.STRING:
|
|
62
|
-
// In embedded format: numStreams includes nullability stream if column is nullable
|
|
63
|
-
const stringDataStreams = columnMetadata.nullable ? numStreams - 1 : numStreams;
|
|
64
|
-
return stringDecoder_1.StringDecoder.decode(columnMetadata.name, data, offset, stringDataStreams, nullabilityBuffer);
|
|
65
|
-
case tilesetMetadata_g_1.ScalarType.BOOLEAN:
|
|
66
|
-
return decodeBooleanColumn(data, offset, columnMetadata, numFeatures, sizeOrNullabilityBuffer);
|
|
67
|
-
case tilesetMetadata_g_1.ScalarType.UINT_64:
|
|
68
|
-
case tilesetMetadata_g_1.ScalarType.INT_64:
|
|
69
|
-
return decodeLongColumn(data, offset, columnMetadata, sizeOrNullabilityBuffer, column);
|
|
70
|
-
case tilesetMetadata_g_1.ScalarType.FLOAT:
|
|
71
|
-
return decodeFloatColumn(data, offset, columnMetadata, sizeOrNullabilityBuffer);
|
|
72
|
-
case tilesetMetadata_g_1.ScalarType.DOUBLE:
|
|
73
|
-
return decodeDoubleColumn(data, offset, columnMetadata, sizeOrNullabilityBuffer);
|
|
74
|
-
default:
|
|
75
|
-
throw new Error(`The specified data type for the field is currently not supported: ${column}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function decodeBooleanColumn(data, offset, column, numFeatures, sizeOrNullabilityBuffer) {
|
|
79
|
-
const dataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
80
|
-
const numValues = dataStreamMetadata.numValues;
|
|
81
|
-
const streamDataStart = offset.get();
|
|
82
|
-
const dataStream = isNullabilityBuffer(sizeOrNullabilityBuffer)
|
|
83
|
-
? (0, decodingUtils_1.decodeNullableBooleanRle)(data, numValues, offset, sizeOrNullabilityBuffer)
|
|
84
|
-
: (0, decodingUtils_1.decodeBooleanRle)(data, numValues, offset);
|
|
85
|
-
// TODO: refactor decodeNullableBooleanRle
|
|
86
|
-
// Fix offset: RLE decoders don't consume all compressed bytes
|
|
87
|
-
offset.set(streamDataStart + dataStreamMetadata.byteLength);
|
|
88
|
-
const dataVector = new bitVector_1.default(dataStream, numValues);
|
|
89
|
-
return new booleanFlatVector_1.BooleanFlatVector(column.name, dataVector, sizeOrNullabilityBuffer);
|
|
90
|
-
}
|
|
91
|
-
function decodeFloatColumn(data, offset, column, sizeOrNullabilityBuffer) {
|
|
92
|
-
const dataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
93
|
-
const dataStream = isNullabilityBuffer(sizeOrNullabilityBuffer)
|
|
94
|
-
? (0, decodingUtils_1.decodeNullableFloatsLE)(data, offset, sizeOrNullabilityBuffer, dataStreamMetadata.numValues)
|
|
95
|
-
: (0, decodingUtils_1.decodeFloatsLE)(data, offset, dataStreamMetadata.numValues);
|
|
96
|
-
return new floatFlatVector_1.FloatFlatVector(column.name, dataStream, sizeOrNullabilityBuffer);
|
|
97
|
-
}
|
|
98
|
-
function decodeDoubleColumn(data, offset, column, sizeOrNullabilityBuffer) {
|
|
99
|
-
const dataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
100
|
-
const dataStream = isNullabilityBuffer(sizeOrNullabilityBuffer)
|
|
101
|
-
? (0, decodingUtils_1.decodeNullableDoublesLE)(data, offset, sizeOrNullabilityBuffer, dataStreamMetadata.numValues)
|
|
102
|
-
: (0, decodingUtils_1.decodeDoublesLE)(data, offset, dataStreamMetadata.numValues);
|
|
103
|
-
return new doubleFlatVector_1.DoubleFlatVector(column.name, dataStream, sizeOrNullabilityBuffer);
|
|
104
|
-
}
|
|
105
|
-
function decodeLongColumn(data, offset, column, sizeOrNullabilityBuffer, scalarColumn) {
|
|
106
|
-
const dataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
107
|
-
const vectorType = integerStreamDecoder_1.default.getVectorType(dataStreamMetadata, sizeOrNullabilityBuffer);
|
|
108
|
-
const isSigned = scalarColumn.type.value === tilesetMetadata_g_1.ScalarType.INT_64;
|
|
109
|
-
if (vectorType === vectorType_1.VectorType.FLAT) {
|
|
110
|
-
const dataStream = isNullabilityBuffer(sizeOrNullabilityBuffer)
|
|
111
|
-
? integerStreamDecoder_1.default.decodeNullableLongStream(data, offset, dataStreamMetadata, isSigned, sizeOrNullabilityBuffer)
|
|
112
|
-
: integerStreamDecoder_1.default.decodeLongStream(data, offset, dataStreamMetadata, isSigned);
|
|
113
|
-
return new longFlatVector_1.LongFlatVector(column.name, dataStream, sizeOrNullabilityBuffer);
|
|
114
|
-
}
|
|
115
|
-
else if (vectorType === vectorType_1.VectorType.SEQUENCE) {
|
|
116
|
-
const id = integerStreamDecoder_1.default.decodeSequenceLongStream(data, offset, dataStreamMetadata);
|
|
117
|
-
return new longSequenceVector_1.LongSequenceVector(column.name, id[0], id[1], dataStreamMetadata.numRleValues);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
const constValue = integerStreamDecoder_1.default.decodeConstLongStream(data, offset, dataStreamMetadata, isSigned);
|
|
121
|
-
return new longConstVector_1.LongConstVector(column.name, constValue, sizeOrNullabilityBuffer);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function decodeIntColumn(data, offset, column, scalarColumn, sizeOrNullabilityBuffer) {
|
|
125
|
-
const dataStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
126
|
-
const vectorType = integerStreamDecoder_1.default.getVectorType(dataStreamMetadata, sizeOrNullabilityBuffer);
|
|
127
|
-
const isSigned = scalarColumn.type.value === tilesetMetadata_g_1.ScalarType.INT_32;
|
|
128
|
-
if (vectorType === vectorType_1.VectorType.FLAT) {
|
|
129
|
-
const dataStream = isNullabilityBuffer(sizeOrNullabilityBuffer)
|
|
130
|
-
? integerStreamDecoder_1.default.decodeNullableIntStream(data, offset, dataStreamMetadata, isSigned, sizeOrNullabilityBuffer)
|
|
131
|
-
: integerStreamDecoder_1.default.decodeIntStream(data, offset, dataStreamMetadata, isSigned);
|
|
132
|
-
return new intFlatVector_1.IntFlatVector(column.name, dataStream, sizeOrNullabilityBuffer);
|
|
133
|
-
}
|
|
134
|
-
else if (vectorType === vectorType_1.VectorType.SEQUENCE) {
|
|
135
|
-
const id = integerStreamDecoder_1.default.decodeSequenceIntStream(data, offset, dataStreamMetadata);
|
|
136
|
-
return new intSequenceVector_1.IntSequenceVector(column.name, id[0], id[1], dataStreamMetadata.numRleValues);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
const constValue = integerStreamDecoder_1.default.decodeConstIntStream(data, offset, dataStreamMetadata, isSigned);
|
|
140
|
-
return new intConstVector_1.IntConstVector(column.name, constValue, sizeOrNullabilityBuffer);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
function isNullabilityBuffer(sizeOrNullabilityBuffer) {
|
|
144
|
-
return sizeOrNullabilityBuffer instanceof bitVector_1.default;
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=propertyDecoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"propertyDecoder.js","sourceRoot":"","sources":["../../src/encodings/propertyDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.StringDecoder = void 0;
|
|
7
|
-
const streamMetadataDecoder_1 = require("../metadata/tile/streamMetadataDecoder");
|
|
8
|
-
const stringFlatVector_1 = require("../vector/flat/stringFlatVector");
|
|
9
|
-
const stringDictionaryVector_1 = require("../vector/dictionary/stringDictionaryVector");
|
|
10
|
-
const bitVector_1 = __importDefault(require("../vector/flat/bitVector"));
|
|
11
|
-
const physicalStreamType_1 = require("../metadata/tile/physicalStreamType");
|
|
12
|
-
const dictionaryType_1 = require("../metadata/tile/dictionaryType");
|
|
13
|
-
const lengthType_1 = require("../metadata/tile/lengthType");
|
|
14
|
-
const integerStreamDecoder_1 = __importDefault(require("./integerStreamDecoder"));
|
|
15
|
-
const tilesetMetadata_g_1 = require("../metadata/tileset/tilesetMetadata.g");
|
|
16
|
-
const integerDecodingUtils_1 = require("./integerDecodingUtils");
|
|
17
|
-
const decodingUtils_1 = require("./decodingUtils");
|
|
18
|
-
const rleEncodedStreamMetadata_1 = require("../metadata/tile/rleEncodedStreamMetadata");
|
|
19
|
-
const stringFsstDictionaryVector_1 = require("../vector/fsst-dictionary/stringFsstDictionaryVector");
|
|
20
|
-
class StringDecoder {
|
|
21
|
-
constructor() { }
|
|
22
|
-
static decode(name, data, offset, numStreams, bitVector) {
|
|
23
|
-
let dictionaryLengthStream = null;
|
|
24
|
-
let offsetStream = null;
|
|
25
|
-
let dictionaryStream = null;
|
|
26
|
-
let symbolLengthStream = null;
|
|
27
|
-
let symbolTableStream = null;
|
|
28
|
-
for (let i = 0; i < numStreams; i++) {
|
|
29
|
-
const streamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
30
|
-
if (streamMetadata.byteLength === 0) {
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
switch (streamMetadata.physicalStreamType) {
|
|
34
|
-
case physicalStreamType_1.PhysicalStreamType.OFFSET: {
|
|
35
|
-
const isNullable = bitVector != null;
|
|
36
|
-
offsetStream = isNullable
|
|
37
|
-
? integerStreamDecoder_1.default.decodeNullableIntStream(data, offset, streamMetadata, false, bitVector)
|
|
38
|
-
: integerStreamDecoder_1.default.decodeIntStream(data, offset, streamMetadata, false);
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
case physicalStreamType_1.PhysicalStreamType.LENGTH: {
|
|
42
|
-
const ls = integerStreamDecoder_1.default.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
43
|
-
if (lengthType_1.LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
44
|
-
dictionaryLengthStream = ls;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
symbolLengthStream = ls;
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
case physicalStreamType_1.PhysicalStreamType.DATA: {
|
|
52
|
-
const ds = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
53
|
-
offset.add(streamMetadata.byteLength);
|
|
54
|
-
if (dictionaryType_1.DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType) {
|
|
55
|
-
dictionaryStream = ds;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
symbolTableStream = ds;
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (symbolTableStream) {
|
|
65
|
-
return new stringFsstDictionaryVector_1.StringFsstDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, symbolLengthStream, symbolTableStream, bitVector);
|
|
66
|
-
}
|
|
67
|
-
else if (dictionaryStream) {
|
|
68
|
-
return bitVector
|
|
69
|
-
? new stringDictionaryVector_1.StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream, bitVector)
|
|
70
|
-
: new stringDictionaryVector_1.StringDictionaryVector(name, offsetStream, dictionaryLengthStream, dictionaryStream);
|
|
71
|
-
}
|
|
72
|
-
return bitVector
|
|
73
|
-
? new stringFlatVector_1.StringFlatVector(name, offsetStream, dictionaryStream, bitVector)
|
|
74
|
-
: new stringFlatVector_1.StringFlatVector(name, offsetStream, dictionaryStream);
|
|
75
|
-
}
|
|
76
|
-
static decodeSharedDictionary(data, offset, column, numFeatures, propertyColumnNames) {
|
|
77
|
-
let dictionaryOffsetBuffer = null;
|
|
78
|
-
let dictionaryBuffer = null;
|
|
79
|
-
let symbolOffsetBuffer = null;
|
|
80
|
-
let symbolTableBuffer = null;
|
|
81
|
-
let dictionaryStreamDecoded = false;
|
|
82
|
-
while (!dictionaryStreamDecoded) {
|
|
83
|
-
const streamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
84
|
-
switch (streamMetadata.physicalStreamType) {
|
|
85
|
-
case physicalStreamType_1.PhysicalStreamType.LENGTH:
|
|
86
|
-
if (lengthType_1.LengthType.DICTIONARY === streamMetadata.logicalStreamType.lengthType) {
|
|
87
|
-
dictionaryOffsetBuffer = integerStreamDecoder_1.default.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
symbolOffsetBuffer = integerStreamDecoder_1.default.decodeLengthStreamToOffsetBuffer(data, offset, streamMetadata);
|
|
91
|
-
}
|
|
92
|
-
break;
|
|
93
|
-
case physicalStreamType_1.PhysicalStreamType.DATA:
|
|
94
|
-
if (dictionaryType_1.DictionaryType.SINGLE === streamMetadata.logicalStreamType.dictionaryType ||
|
|
95
|
-
dictionaryType_1.DictionaryType.SHARED === streamMetadata.logicalStreamType.dictionaryType) {
|
|
96
|
-
dictionaryBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
97
|
-
dictionaryStreamDecoded = true;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
symbolTableBuffer = data.subarray(offset.get(), offset.get() + streamMetadata.byteLength);
|
|
101
|
-
}
|
|
102
|
-
offset.add(streamMetadata.byteLength);
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
const childFields = column.type.value.children;
|
|
107
|
-
const stringDictionaryVectors = [];
|
|
108
|
-
let i = 0;
|
|
109
|
-
for (const childField of childFields) {
|
|
110
|
-
const numStreams = (0, integerDecodingUtils_1.decodeVarintInt32)(data, offset, 1)[0];
|
|
111
|
-
if (numStreams == 0) {
|
|
112
|
-
/* Column is not present in the tile */
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
const columnName = `${column.name}${childField.name === StringDecoder.ROOT_COLUMN_NAME ? "" :
|
|
116
|
-
(StringDecoder.NESTED_COLUMN_SEPARATOR + childField.name)}`;
|
|
117
|
-
if (propertyColumnNames) {
|
|
118
|
-
if (!propertyColumnNames.has(columnName)) {
|
|
119
|
-
//TODO: add size of sub column to Mlt for faster skipping
|
|
120
|
-
(0, decodingUtils_1.skipColumn)(numStreams, data, offset);
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (numStreams !== 2 || childField.type.case === "complexField" ||
|
|
125
|
-
childField.type.value.type.value !== tilesetMetadata_g_1.ScalarType.STRING) {
|
|
126
|
-
throw new Error("Currently only optional string fields are implemented for a struct.");
|
|
127
|
-
}
|
|
128
|
-
const presentStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
129
|
-
const presentStream = (0, decodingUtils_1.decodeBooleanRle)(data, presentStreamMetadata.numValues, offset);
|
|
130
|
-
const offsetStreamMetadata = streamMetadataDecoder_1.StreamMetadataDecoder.decode(data, offset);
|
|
131
|
-
const isNullable = (offsetStreamMetadata instanceof rleEncodedStreamMetadata_1.RleEncodedStreamMetadata
|
|
132
|
-
? offsetStreamMetadata.numRleValues
|
|
133
|
-
: offsetStreamMetadata.numValues) !== numFeatures;
|
|
134
|
-
const offsetStream = isNullable
|
|
135
|
-
? integerStreamDecoder_1.default.decodeNullableIntStream(data, offset, offsetStreamMetadata, false, new bitVector_1.default(presentStream, presentStreamMetadata.numValues))
|
|
136
|
-
: integerStreamDecoder_1.default.decodeIntStream(data, offset, offsetStreamMetadata, false);
|
|
137
|
-
stringDictionaryVectors[i++] = symbolTableBuffer ?
|
|
138
|
-
new stringFsstDictionaryVector_1.StringFsstDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, symbolOffsetBuffer, symbolTableBuffer, new bitVector_1.default(presentStream, presentStreamMetadata.numValues)) :
|
|
139
|
-
new stringDictionaryVector_1.StringDictionaryVector(columnName, offsetStream, dictionaryOffsetBuffer, dictionaryBuffer, new bitVector_1.default(presentStream, presentStreamMetadata.numValues));
|
|
140
|
-
}
|
|
141
|
-
return stringDictionaryVectors;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
exports.StringDecoder = StringDecoder;
|
|
145
|
-
StringDecoder.ROOT_COLUMN_NAME = "default";
|
|
146
|
-
StringDecoder.NESTED_COLUMN_SEPARATOR = ":";
|
|
147
|
-
//# sourceMappingURL=stringDecoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringDecoder.js","sourceRoot":"","sources":["../../src/encodings/stringDecoder.ts"],"names":[],"mappings":"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"}
|