@itwin/core-frontend 3.7.0-dev.5 → 3.7.0-dev.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/lib/cjs/ElementLocateManager.js +1 -1
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +2 -0
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +2 -0
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +2 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +10 -6
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/gltf/GltfModel.d.ts +91 -0
- package/lib/cjs/gltf/GltfModel.d.ts.map +1 -0
- package/lib/cjs/gltf/GltfModel.js +10 -0
- package/lib/cjs/gltf/GltfModel.js.map +1 -0
- package/lib/cjs/gltf/GltfParser.d.ts +26 -0
- package/lib/cjs/gltf/GltfParser.d.ts.map +1 -0
- package/lib/cjs/gltf/GltfParser.js +357 -0
- package/lib/cjs/gltf/GltfParser.js.map +1 -0
- package/lib/cjs/gltf/GltfSchema.d.ts +557 -0
- package/lib/cjs/gltf/GltfSchema.d.ts.map +1 -0
- package/lib/cjs/gltf/GltfSchema.js +138 -0
- package/lib/cjs/gltf/GltfSchema.js.map +1 -0
- package/lib/cjs/render/GraphicBuilder.d.ts +5 -2
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +12 -3
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts +4 -4
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +13 -4
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +20 -13
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +2 -2
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.js +2 -2
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/webgl/BatchState.d.ts +3 -2
- package/lib/cjs/render/webgl/BatchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BatchState.js +4 -3
- package/lib/cjs/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +4 -2
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +3 -3
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +24 -28
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +3 -3
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +13 -4
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +2 -2
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/VisibleTileFeatures.js +6 -7
- package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/tile/B3dmReader.d.ts +2 -1
- package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/tile/B3dmReader.js +2 -1
- package/lib/cjs/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +13 -420
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +121 -192
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +3 -2
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +34 -25
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +5 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +2 -0
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +14 -2
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +10 -1
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +22 -2
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/esm/ElementLocateManager.js +1 -1
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +2 -0
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/ViewState.d.ts +2 -0
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +2 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +10 -6
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/gltf/GltfModel.d.ts +91 -0
- package/lib/esm/gltf/GltfModel.d.ts.map +1 -0
- package/lib/esm/gltf/GltfModel.js +9 -0
- package/lib/esm/gltf/GltfModel.js.map +1 -0
- package/lib/esm/gltf/GltfParser.d.ts +26 -0
- package/lib/esm/gltf/GltfParser.d.ts.map +1 -0
- package/lib/esm/gltf/GltfParser.js +334 -0
- package/lib/esm/gltf/GltfParser.js.map +1 -0
- package/lib/esm/gltf/GltfSchema.d.ts +557 -0
- package/lib/esm/gltf/GltfSchema.d.ts.map +1 -0
- package/lib/esm/gltf/GltfSchema.js +131 -0
- package/lib/esm/gltf/GltfSchema.js.map +1 -0
- package/lib/esm/render/GraphicBuilder.d.ts +5 -2
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +13 -4
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts +4 -4
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +13 -4
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +21 -14
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +2 -2
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/VisibleFeature.js +2 -2
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/webgl/BatchState.d.ts +3 -2
- package/lib/esm/render/webgl/BatchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BatchState.js +4 -3
- package/lib/esm/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +4 -2
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +3 -3
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +24 -28
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +3 -3
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +1 -1
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +14 -5
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +2 -2
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/VisibleTileFeatures.js +7 -8
- package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/tile/B3dmReader.d.ts +2 -1
- package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/tile/B3dmReader.js +2 -1
- package/lib/esm/tile/B3dmReader.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +13 -420
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +78 -149
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +3 -2
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +35 -26
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +5 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +2 -0
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +14 -2
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +10 -1
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +22 -2
- package/lib/esm/tile/Tile.js.map +1 -1
- package/package.json +20 -20
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.GltfGraphicsReader = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData =
|
|
29
|
+
exports.GltfGraphicsReader = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = void 0;
|
|
30
30
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
31
31
|
const core_geometry_1 = require("@itwin/core-geometry");
|
|
32
32
|
const core_common_1 = require("@itwin/core-common");
|
|
@@ -38,102 +38,7 @@ const RealityMeshParams_1 = require("../render/RealityMeshParams");
|
|
|
38
38
|
const DisplayParams_1 = require("../render/primitives/DisplayParams");
|
|
39
39
|
const MeshPrimitives_1 = require("../render/primitives/mesh/MeshPrimitives");
|
|
40
40
|
const Primitives_1 = require("../render/primitives/Primitives");
|
|
41
|
-
|
|
42
|
-
/** Enumerates the types of [[GltfMeshPrimitive]] topologies. */
|
|
43
|
-
var GltfMeshMode;
|
|
44
|
-
(function (GltfMeshMode) {
|
|
45
|
-
GltfMeshMode[GltfMeshMode["Points"] = 0] = "Points";
|
|
46
|
-
GltfMeshMode[GltfMeshMode["Lines"] = 1] = "Lines";
|
|
47
|
-
GltfMeshMode[GltfMeshMode["LineStrip"] = 3] = "LineStrip";
|
|
48
|
-
GltfMeshMode[GltfMeshMode["Triangles"] = 4] = "Triangles";
|
|
49
|
-
/** Not currently supported. */
|
|
50
|
-
GltfMeshMode[GltfMeshMode["TriangleStrip"] = 5] = "TriangleStrip";
|
|
51
|
-
/** Not currently supported. */
|
|
52
|
-
GltfMeshMode[GltfMeshMode["TriangleFan"] = 6] = "TriangleFan";
|
|
53
|
-
})(GltfMeshMode || (GltfMeshMode = {}));
|
|
54
|
-
/** Enumerates the basic data types supported by accessors, material values, technique uniforms, etc.
|
|
55
|
-
* @internal
|
|
56
|
-
*/
|
|
57
|
-
var GltfDataType;
|
|
58
|
-
(function (GltfDataType) {
|
|
59
|
-
GltfDataType[GltfDataType["SignedByte"] = 5120] = "SignedByte";
|
|
60
|
-
GltfDataType[GltfDataType["UnsignedByte"] = 5121] = "UnsignedByte";
|
|
61
|
-
GltfDataType[GltfDataType["SignedShort"] = 5122] = "SignedShort";
|
|
62
|
-
GltfDataType[GltfDataType["UnsignedShort"] = 5123] = "UnsignedShort";
|
|
63
|
-
GltfDataType[GltfDataType["UInt32"] = 5125] = "UInt32";
|
|
64
|
-
GltfDataType[GltfDataType["Float"] = 5126] = "Float";
|
|
65
|
-
GltfDataType[GltfDataType["Rgb"] = 6407] = "Rgb";
|
|
66
|
-
GltfDataType[GltfDataType["Rgba"] = 6408] = "Rgba";
|
|
67
|
-
GltfDataType[GltfDataType["IntVec2"] = 35667] = "IntVec2";
|
|
68
|
-
GltfDataType[GltfDataType["IntVec3"] = 35668] = "IntVec3";
|
|
69
|
-
GltfDataType[GltfDataType["FloatVec2"] = 35664] = "FloatVec2";
|
|
70
|
-
GltfDataType[GltfDataType["FloatVec3"] = 35665] = "FloatVec3";
|
|
71
|
-
GltfDataType[GltfDataType["FloatVec4"] = 35666] = "FloatVec4";
|
|
72
|
-
GltfDataType[GltfDataType["FloatMat3"] = 35675] = "FloatMat3";
|
|
73
|
-
GltfDataType[GltfDataType["FloatMat4"] = 35676] = "FloatMat4";
|
|
74
|
-
GltfDataType[GltfDataType["Sampler2d"] = 35678] = "Sampler2d";
|
|
75
|
-
})(GltfDataType = exports.GltfDataType || (exports.GltfDataType = {}));
|
|
76
|
-
/** @internal */
|
|
77
|
-
var GltfMagFilter;
|
|
78
|
-
(function (GltfMagFilter) {
|
|
79
|
-
GltfMagFilter[GltfMagFilter["Nearest"] = 9728] = "Nearest";
|
|
80
|
-
GltfMagFilter[GltfMagFilter["Linear"] = 9729] = "Linear";
|
|
81
|
-
})(GltfMagFilter || (GltfMagFilter = {}));
|
|
82
|
-
/** @internal */
|
|
83
|
-
var GltfMinFilter;
|
|
84
|
-
(function (GltfMinFilter) {
|
|
85
|
-
GltfMinFilter[GltfMinFilter["Nearest"] = 9728] = "Nearest";
|
|
86
|
-
GltfMinFilter[GltfMinFilter["Linear"] = 9729] = "Linear";
|
|
87
|
-
GltfMinFilter[GltfMinFilter["NearestMipMapNearest"] = 9984] = "NearestMipMapNearest";
|
|
88
|
-
GltfMinFilter[GltfMinFilter["LinearMipMapNearest"] = 9985] = "LinearMipMapNearest";
|
|
89
|
-
GltfMinFilter[GltfMinFilter["NearestMipMapLinear"] = 9986] = "NearestMipMapLinear";
|
|
90
|
-
GltfMinFilter[GltfMinFilter["LinearMipMapLinear"] = 9987] = "LinearMipMapLinear";
|
|
91
|
-
})(GltfMinFilter || (GltfMinFilter = {}));
|
|
92
|
-
/** Describes how texture coordinates outside of the range [0..1] are handled.
|
|
93
|
-
* @internal
|
|
94
|
-
*/
|
|
95
|
-
var GltfWrapMode;
|
|
96
|
-
(function (GltfWrapMode) {
|
|
97
|
-
GltfWrapMode[GltfWrapMode["ClampToEdge"] = 33071] = "ClampToEdge";
|
|
98
|
-
GltfWrapMode[GltfWrapMode["MirroredRepeat"] = 33648] = "MirroredRepeat";
|
|
99
|
-
GltfWrapMode[GltfWrapMode["Repeat"] = 10497] = "Repeat";
|
|
100
|
-
})(GltfWrapMode = exports.GltfWrapMode || (exports.GltfWrapMode = {}));
|
|
101
|
-
/** Describes the intended target of a [[GltfBufferViewProps]]. */
|
|
102
|
-
var GltfBufferTarget;
|
|
103
|
-
(function (GltfBufferTarget) {
|
|
104
|
-
GltfBufferTarget[GltfBufferTarget["ArrayBuffer"] = 34962] = "ArrayBuffer";
|
|
105
|
-
GltfBufferTarget[GltfBufferTarget["ElementArrayBuffer"] = 24963] = "ElementArrayBuffer";
|
|
106
|
-
})(GltfBufferTarget || (GltfBufferTarget = {}));
|
|
107
|
-
function* dictionaryIterator(dict) {
|
|
108
|
-
if (Array.isArray(dict)) {
|
|
109
|
-
for (const elem of dict)
|
|
110
|
-
yield elem;
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
for (const key of Object.keys(dict)) {
|
|
114
|
-
const value = dict[key];
|
|
115
|
-
if (undefined !== value)
|
|
116
|
-
yield value;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
function getNodeMeshIds(node) {
|
|
121
|
-
if (undefined !== node.meshes)
|
|
122
|
-
return typeof node.meshes === "string" ? [node.meshes] : node.meshes;
|
|
123
|
-
else if (undefined !== node.mesh)
|
|
124
|
-
return [node.mesh];
|
|
125
|
-
return [];
|
|
126
|
-
}
|
|
127
|
-
/** GL states that can be enabled by a [[GltfTechnique]]. Only those queried by this implementation are enumerated. */
|
|
128
|
-
var GltfTechniqueState;
|
|
129
|
-
(function (GltfTechniqueState) {
|
|
130
|
-
/** Enables alpha blending. */
|
|
131
|
-
GltfTechniqueState[GltfTechniqueState["Blend"] = 3042] = "Blend";
|
|
132
|
-
})(GltfTechniqueState || (GltfTechniqueState = {}));
|
|
133
|
-
function isGltf1Material(material) {
|
|
134
|
-
const mat1 = material;
|
|
135
|
-
return undefined !== mat1.technique || undefined !== mat1.values;
|
|
136
|
-
}
|
|
41
|
+
const GltfSchema_1 = require("../gltf/GltfSchema");
|
|
137
42
|
/**
|
|
138
43
|
* A chunk of binary data exposed as a typed array.
|
|
139
44
|
* The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the
|
|
@@ -154,15 +59,15 @@ class GltfBufferData {
|
|
|
154
59
|
if (expectedType !== actualType) {
|
|
155
60
|
// Some data is stored in smaller data types to save space if no values exceed the maximum of the smaller type.
|
|
156
61
|
switch (expectedType) {
|
|
157
|
-
case GltfDataType.Float:
|
|
158
|
-
case GltfDataType.UnsignedByte:
|
|
62
|
+
case GltfSchema_1.GltfDataType.Float:
|
|
63
|
+
case GltfSchema_1.GltfDataType.UnsignedByte:
|
|
159
64
|
return undefined;
|
|
160
|
-
case GltfDataType.UnsignedShort:
|
|
161
|
-
if (GltfDataType.UnsignedByte !== actualType)
|
|
65
|
+
case GltfSchema_1.GltfDataType.UnsignedShort:
|
|
66
|
+
if (GltfSchema_1.GltfDataType.UnsignedByte !== actualType)
|
|
162
67
|
return undefined;
|
|
163
68
|
break;
|
|
164
|
-
case GltfDataType.UInt32:
|
|
165
|
-
if (GltfDataType.UnsignedByte !== actualType && GltfDataType.UnsignedShort !== actualType)
|
|
69
|
+
case GltfSchema_1.GltfDataType.UInt32:
|
|
70
|
+
if (GltfSchema_1.GltfDataType.UnsignedByte !== actualType && GltfSchema_1.GltfDataType.UnsignedShort !== actualType)
|
|
166
71
|
return undefined;
|
|
167
72
|
break;
|
|
168
73
|
}
|
|
@@ -174,13 +79,13 @@ class GltfBufferData {
|
|
|
174
79
|
// NB: Endianness of typed array data is determined by the 'platform byte order'. Actual data is always little-endian.
|
|
175
80
|
// We are assuming little-endian platform. If we find a big-endian platform, we'll need to use a DataView instead.
|
|
176
81
|
switch (actualType) {
|
|
177
|
-
case GltfDataType.UnsignedByte:
|
|
82
|
+
case GltfSchema_1.GltfDataType.UnsignedByte:
|
|
178
83
|
return bytes;
|
|
179
|
-
case GltfDataType.UnsignedShort:
|
|
84
|
+
case GltfSchema_1.GltfDataType.UnsignedShort:
|
|
180
85
|
return new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2);
|
|
181
|
-
case GltfDataType.UInt32:
|
|
86
|
+
case GltfSchema_1.GltfDataType.UInt32:
|
|
182
87
|
return new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);
|
|
183
|
-
case GltfDataType.Float:
|
|
88
|
+
case GltfSchema_1.GltfDataType.Float:
|
|
184
89
|
return new Float32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);
|
|
185
90
|
default:
|
|
186
91
|
return undefined;
|
|
@@ -320,7 +225,7 @@ function colorFromJson(values) {
|
|
|
320
225
|
function colorFromMaterial(material, isTransparent) {
|
|
321
226
|
var _a, _b, _c, _d, _e;
|
|
322
227
|
let color = core_common_1.ColorDef.white;
|
|
323
|
-
if (isGltf1Material(material)) {
|
|
228
|
+
if ((0, GltfSchema_1.isGltf1Material)(material)) {
|
|
324
229
|
if (((_a = material.values) === null || _a === void 0 ? void 0 : _a.color) && Array.isArray(material.values.color))
|
|
325
230
|
color = colorFromJson(material.values.color);
|
|
326
231
|
}
|
|
@@ -375,20 +280,6 @@ class TransformStack {
|
|
|
375
280
|
this._stack.pop();
|
|
376
281
|
}
|
|
377
282
|
}
|
|
378
|
-
function* traverseNodes(ids, nodes, traversed) {
|
|
379
|
-
for (const id of ids) {
|
|
380
|
-
if (traversed.has(id))
|
|
381
|
-
throw new Error("Cycle detected while traversing glTF nodes");
|
|
382
|
-
const node = nodes[id];
|
|
383
|
-
if (!node)
|
|
384
|
-
continue;
|
|
385
|
-
traversed.add(id);
|
|
386
|
-
yield node;
|
|
387
|
-
if (node.children)
|
|
388
|
-
for (const child of traverseNodes(node.children, nodes, traversed))
|
|
389
|
-
yield child;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
283
|
function compareTextureKeys(lhs, rhs) {
|
|
393
284
|
const cmp = (0, core_bentley_1.compareBooleans)(lhs.isTransparent, rhs.isTransparent);
|
|
394
285
|
if (0 !== cmp)
|
|
@@ -414,7 +305,7 @@ class GltfReader {
|
|
|
414
305
|
* (We also don't want to produce mip-maps for them, which is determined indirectly from the wrap mode).
|
|
415
306
|
* Allow the default to be optionally overridden.
|
|
416
307
|
*/
|
|
417
|
-
this.defaultWrapMode = GltfWrapMode.Repeat;
|
|
308
|
+
this.defaultWrapMode = GltfSchema_1.GltfWrapMode.Repeat;
|
|
418
309
|
this._glTF = args.props.glTF;
|
|
419
310
|
this._version = args.props.version;
|
|
420
311
|
this._yAxisUp = args.props.yAxisUp;
|
|
@@ -463,7 +354,7 @@ class GltfReader {
|
|
|
463
354
|
* @throws Error if a node appears more than once during traversal
|
|
464
355
|
*/
|
|
465
356
|
traverseNodes(nodeIds) {
|
|
466
|
-
return
|
|
357
|
+
return (0, GltfSchema_1.traverseGltfNodes)(nodeIds, this._nodes, new Set());
|
|
467
358
|
}
|
|
468
359
|
/** Traverse the nodes specified by their scene, recursing into their child nodes.
|
|
469
360
|
* @throws Error if a node appears more than once during traversal
|
|
@@ -586,7 +477,7 @@ class GltfReader {
|
|
|
586
477
|
let thisBias;
|
|
587
478
|
if (undefined !== pseudoRtcBias)
|
|
588
479
|
thisBias = (undefined === thisTransform) ? pseudoRtcBias : thisTransform.matrix.multiplyInverse(pseudoRtcBias);
|
|
589
|
-
for (const meshKey of
|
|
480
|
+
for (const meshKey of (0, GltfSchema_1.getGltfNodeMeshIds)(node)) {
|
|
590
481
|
const nodeMesh = this._meshes[meshKey];
|
|
591
482
|
if (nodeMesh === null || nodeMesh === void 0 ? void 0 : nodeMesh.primitives) {
|
|
592
483
|
const meshes = this.readMeshPrimitives(node, featureTable, thisTransform, thisBias);
|
|
@@ -692,14 +583,14 @@ class GltfReader {
|
|
|
692
583
|
const type = accessor.componentType;
|
|
693
584
|
let dataSize = 0;
|
|
694
585
|
switch (type) {
|
|
695
|
-
case GltfDataType.UnsignedByte:
|
|
586
|
+
case GltfSchema_1.GltfDataType.UnsignedByte:
|
|
696
587
|
dataSize = 1;
|
|
697
588
|
break;
|
|
698
|
-
case GltfDataType.UnsignedShort:
|
|
589
|
+
case GltfSchema_1.GltfDataType.UnsignedShort:
|
|
699
590
|
dataSize = 2;
|
|
700
591
|
break;
|
|
701
|
-
case GltfDataType.UInt32:
|
|
702
|
-
case GltfDataType.Float:
|
|
592
|
+
case GltfSchema_1.GltfDataType.UInt32:
|
|
593
|
+
case GltfSchema_1.GltfDataType.Float:
|
|
703
594
|
dataSize = 4;
|
|
704
595
|
break;
|
|
705
596
|
default:
|
|
@@ -726,10 +617,10 @@ class GltfReader {
|
|
|
726
617
|
return undefined;
|
|
727
618
|
}
|
|
728
619
|
}
|
|
729
|
-
readBufferData32(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UInt32); }
|
|
730
|
-
readBufferData16(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UnsignedShort); }
|
|
731
|
-
readBufferData8(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UnsignedByte); }
|
|
732
|
-
readBufferDataFloat(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.Float); }
|
|
620
|
+
readBufferData32(json, accessorName) { return this.readBufferData(json, accessorName, GltfSchema_1.GltfDataType.UInt32); }
|
|
621
|
+
readBufferData16(json, accessorName) { return this.readBufferData(json, accessorName, GltfSchema_1.GltfDataType.UnsignedShort); }
|
|
622
|
+
readBufferData8(json, accessorName) { return this.readBufferData(json, accessorName, GltfSchema_1.GltfDataType.UnsignedByte); }
|
|
623
|
+
readBufferDataFloat(json, accessorName) { return this.readBufferData(json, accessorName, GltfSchema_1.GltfDataType.Float); }
|
|
733
624
|
readBufferData(json, accessorName, type) {
|
|
734
625
|
const view = this.getBufferView(json, accessorName);
|
|
735
626
|
return undefined !== view ? view.toBufferData(type) : undefined;
|
|
@@ -750,7 +641,7 @@ class GltfReader {
|
|
|
750
641
|
if (typeof material !== "object")
|
|
751
642
|
return undefined;
|
|
752
643
|
// Bimium's shader value...almost certainly obsolete at this point.
|
|
753
|
-
if (isGltf1Material(material))
|
|
644
|
+
if ((0, GltfSchema_1.isGltf1Material)(material))
|
|
754
645
|
return (_a = material.diffuse) !== null && _a !== void 0 ? _a : this.extractId((_b = material.values) === null || _b === void 0 ? void 0 : _b.tex);
|
|
755
646
|
// KHR_techniques_webgl extension
|
|
756
647
|
const techniques = (_d = (_c = this._glTF.extensions) === null || _c === void 0 ? void 0 : _c.KHR_techniques_webgl) === null || _d === void 0 ? void 0 : _d.techniques;
|
|
@@ -760,7 +651,7 @@ class GltfReader {
|
|
|
760
651
|
if (typeof uniforms === "object") {
|
|
761
652
|
for (const uniformName of Object.keys(uniforms)) {
|
|
762
653
|
const uniform = uniforms[uniformName];
|
|
763
|
-
if (typeof uniform === "object" && uniform.type === GltfDataType.Sampler2d)
|
|
654
|
+
if (typeof uniform === "object" && uniform.type === GltfSchema_1.GltfDataType.Sampler2d)
|
|
764
655
|
return this.extractId((_f = ext.values[uniformName]) === null || _f === void 0 ? void 0 : _f.index);
|
|
765
656
|
}
|
|
766
657
|
}
|
|
@@ -772,16 +663,16 @@ class GltfReader {
|
|
|
772
663
|
var _a;
|
|
773
664
|
if (typeof material !== "object")
|
|
774
665
|
return undefined;
|
|
775
|
-
if (isGltf1Material(material))
|
|
666
|
+
if ((0, GltfSchema_1.isGltf1Material)(material))
|
|
776
667
|
return undefined;
|
|
777
668
|
return this.extractId((_a = material.normalTexture) === null || _a === void 0 ? void 0 : _a.index);
|
|
778
669
|
}
|
|
779
670
|
isMaterialTransparent(material) {
|
|
780
671
|
var _a, _b;
|
|
781
|
-
if (isGltf1Material(material)) {
|
|
672
|
+
if ((0, GltfSchema_1.isGltf1Material)(material)) {
|
|
782
673
|
if (this._glTF.techniques && undefined !== material.technique) {
|
|
783
674
|
const technique = this._glTF.techniques[material.technique];
|
|
784
|
-
if ((_b = (_a = technique === null || technique === void 0 ? void 0 : technique.states) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.some((state) => state === GltfTechniqueState.Blend))
|
|
675
|
+
if ((_b = (_a = technique === null || technique === void 0 ? void 0 : technique.states) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.some((state) => state === GltfSchema_1.GltfTechniqueState.Blend))
|
|
785
676
|
return true;
|
|
786
677
|
}
|
|
787
678
|
return false;
|
|
@@ -807,7 +698,7 @@ class GltfReader {
|
|
|
807
698
|
}
|
|
808
699
|
readMeshPrimitives(node, featureTable, thisTransform, thisBias) {
|
|
809
700
|
const meshes = [];
|
|
810
|
-
for (const meshKey of
|
|
701
|
+
for (const meshKey of (0, GltfSchema_1.getGltfNodeMeshIds)(node)) {
|
|
811
702
|
const nodeMesh = this._meshes[meshKey];
|
|
812
703
|
if (nodeMesh === null || nodeMesh === void 0 ? void 0 : nodeMesh.primitives) {
|
|
813
704
|
for (const primitive of nodeMesh.primitives) {
|
|
@@ -836,15 +727,15 @@ class GltfReader {
|
|
|
836
727
|
if (!displayParams)
|
|
837
728
|
return undefined;
|
|
838
729
|
let primitiveType = -1;
|
|
839
|
-
const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, GltfMeshMode.Triangles);
|
|
730
|
+
const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, GltfSchema_1.GltfMeshMode.Triangles);
|
|
840
731
|
switch (meshMode) {
|
|
841
|
-
case GltfMeshMode.Lines:
|
|
732
|
+
case GltfSchema_1.GltfMeshMode.Lines:
|
|
842
733
|
primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Polyline;
|
|
843
734
|
break;
|
|
844
|
-
case GltfMeshMode.Points:
|
|
735
|
+
case GltfSchema_1.GltfMeshMode.Points:
|
|
845
736
|
primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Point;
|
|
846
737
|
break;
|
|
847
|
-
case GltfMeshMode.Triangles:
|
|
738
|
+
case GltfSchema_1.GltfMeshMode.Triangles:
|
|
848
739
|
primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Mesh;
|
|
849
740
|
break;
|
|
850
741
|
default:
|
|
@@ -864,30 +755,43 @@ class GltfReader {
|
|
|
864
755
|
quantizePositions: true,
|
|
865
756
|
});
|
|
866
757
|
const mesh = new GltfMeshData(meshPrimitive);
|
|
867
|
-
//
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
758
|
+
// ###TODO_GLTF: There can be more than one color attribute; COLOR_0 might not be the one we want.
|
|
759
|
+
if (!this.readColors(mesh, primitive.attributes, "COLOR_0")) {
|
|
760
|
+
// We don't have real colormap - just load material color. This will be used if non-Bentley
|
|
761
|
+
// tile or fit the color table is uniform. For a non-Bentley, non-Uniform, we'll set the
|
|
762
|
+
// uv parameters to pick the colors out of the color map texture.
|
|
763
|
+
meshPrimitive.colorMap.insert(displayParams.fillColor.tbgr); // White...
|
|
764
|
+
// _COLORINDEX is an ancient holdover from glTF 1.0 and Bimium...unlikely to actually encounter it in the wild.
|
|
765
|
+
const colorIndices = this.readBufferData16(primitive.attributes, "_COLORINDEX");
|
|
766
|
+
if (undefined !== colorIndices && material) {
|
|
767
|
+
let texStep;
|
|
768
|
+
if ((0, GltfSchema_1.isGltf1Material)(material))
|
|
769
|
+
texStep = (_b = material.values) === null || _b === void 0 ? void 0 : _b.texStep;
|
|
770
|
+
else
|
|
771
|
+
texStep = (_e = (_d = (_c = material.extensions) === null || _c === void 0 ? void 0 : _c.KHR_techniques_webgl) === null || _d === void 0 ? void 0 : _d.values) === null || _e === void 0 ? void 0 : _e.u_texStep;
|
|
772
|
+
if (texStep) {
|
|
773
|
+
const uvParams = [];
|
|
774
|
+
for (let i = 0; i < colorIndices.count; i++)
|
|
775
|
+
uvParams.push(new core_geometry_1.Point2d(texStep[1] + texStep[0] * colorIndices.buffer[i], .5));
|
|
776
|
+
const paramList = core_common_1.QPoint2dList.fromPoints(uvParams);
|
|
777
|
+
mesh.uvs = paramList.toTypedArray();
|
|
778
|
+
mesh.uvQParams = paramList.params;
|
|
779
|
+
}
|
|
885
780
|
}
|
|
886
781
|
}
|
|
887
782
|
const draco = (_f = primitive.extensions) === null || _f === void 0 ? void 0 : _f.KHR_draco_mesh_compression;
|
|
888
783
|
if (draco)
|
|
889
784
|
return this.readDracoMeshPrimitive(mesh.primitive, draco) ? mesh : undefined;
|
|
890
785
|
this.readBatchTable(mesh.primitive, primitive);
|
|
786
|
+
if (mesh.primitive.features) {
|
|
787
|
+
const features = this.readPrimitiveFeatures(primitive);
|
|
788
|
+
if (features) {
|
|
789
|
+
if (features instanceof core_common_1.Feature)
|
|
790
|
+
mesh.primitive.features.add(features, 1);
|
|
791
|
+
else
|
|
792
|
+
mesh.primitive.features.setIndices(features);
|
|
793
|
+
}
|
|
794
|
+
}
|
|
891
795
|
if (!this.readVertices(mesh, primitive, pseudoRtcBias))
|
|
892
796
|
return undefined;
|
|
893
797
|
switch (primitiveType) {
|
|
@@ -898,7 +802,7 @@ class GltfReader {
|
|
|
898
802
|
return undefined;
|
|
899
803
|
if (!mesh.uvs) {
|
|
900
804
|
let texCoordIndex = 0;
|
|
901
|
-
if (!isGltf1Material(material) && undefined !== ((_h = (_g = material.pbrMetallicRoughness) === null || _g === void 0 ? void 0 : _g.baseColorTexture) === null || _h === void 0 ? void 0 : _h.texCoord))
|
|
805
|
+
if (!(0, GltfSchema_1.isGltf1Material)(material) && undefined !== ((_h = (_g = material.pbrMetallicRoughness) === null || _g === void 0 ? void 0 : _g.baseColorTexture) === null || _h === void 0 ? void 0 : _h.texCoord))
|
|
902
806
|
texCoordIndex = core_bentley_1.JsonUtils.asInt(material.pbrMetallicRoughness.baseColorTexture.texCoord);
|
|
903
807
|
this.readUVParams(mesh, primitive.attributes, `TEXCOORD_${texCoordIndex}`);
|
|
904
808
|
}
|
|
@@ -1025,11 +929,12 @@ class GltfReader {
|
|
|
1025
929
|
* capacity of 32 bit integers. This is essentially an ad hoc RTC applied at read time.
|
|
1026
930
|
*/
|
|
1027
931
|
readVertices(mesh, primitive, pseudoRtcBias) {
|
|
932
|
+
var _a;
|
|
1028
933
|
const view = this.getBufferView(primitive.attributes, "POSITION");
|
|
1029
934
|
if (undefined === view)
|
|
1030
935
|
return false;
|
|
1031
|
-
if (GltfDataType.Float === view.type) {
|
|
1032
|
-
const buffer = view.toBufferData(GltfDataType.Float);
|
|
936
|
+
if (GltfSchema_1.GltfDataType.Float === view.type) {
|
|
937
|
+
const buffer = view.toBufferData(GltfSchema_1.GltfDataType.Float);
|
|
1033
938
|
if (undefined === buffer)
|
|
1034
939
|
return false;
|
|
1035
940
|
const strideSkip = view.stride - 3;
|
|
@@ -1048,17 +953,15 @@ class GltfReader {
|
|
|
1048
953
|
mesh.points = positions.toTypedArray();
|
|
1049
954
|
}
|
|
1050
955
|
else {
|
|
1051
|
-
if (GltfDataType.UnsignedShort !== view.type)
|
|
956
|
+
if (GltfSchema_1.GltfDataType.UnsignedShort !== view.type)
|
|
1052
957
|
return false;
|
|
1053
|
-
const
|
|
1054
|
-
const
|
|
1055
|
-
|
|
958
|
+
const quantized = (_a = view.accessor.extensions) === null || _a === void 0 ? void 0 : _a.WEB3D_quantized_attributes;
|
|
959
|
+
const rangeMin = quantized === null || quantized === void 0 ? void 0 : quantized.decodedMin;
|
|
960
|
+
const rangeMax = quantized === null || quantized === void 0 ? void 0 : quantized.decodedMax;
|
|
961
|
+
if (!rangeMin || !rangeMax) // required by spec...
|
|
1056
962
|
return false;
|
|
1057
|
-
|
|
1058
|
-
const
|
|
1059
|
-
if (undefined === rangeMin || undefined === rangeMax)
|
|
1060
|
-
return false;
|
|
1061
|
-
const buffer = view.toBufferData(GltfDataType.UnsignedShort);
|
|
963
|
+
// ###TODO apply WEB3D_quantized_attributes.decodeMatrix? Have not encountered in the wild; glTF 1.0 only.
|
|
964
|
+
const buffer = view.toBufferData(GltfSchema_1.GltfDataType.UnsignedShort);
|
|
1062
965
|
if (undefined === buffer || !(buffer.buffer instanceof Uint16Array))
|
|
1063
966
|
return false;
|
|
1064
967
|
(0, core_bentley_1.assert)(buffer.buffer instanceof Uint16Array);
|
|
@@ -1094,6 +997,9 @@ class GltfReader {
|
|
|
1094
997
|
}
|
|
1095
998
|
readBatchTable(_mesh, _json) {
|
|
1096
999
|
}
|
|
1000
|
+
readPrimitiveFeatures(_primitive) {
|
|
1001
|
+
return undefined;
|
|
1002
|
+
}
|
|
1097
1003
|
readMeshIndices(mesh, json) {
|
|
1098
1004
|
var _a;
|
|
1099
1005
|
if (undefined !== json.indices) {
|
|
@@ -1118,8 +1024,8 @@ class GltfReader {
|
|
|
1118
1024
|
if (undefined === view)
|
|
1119
1025
|
return false;
|
|
1120
1026
|
switch (view.type) {
|
|
1121
|
-
case GltfDataType.Float: {
|
|
1122
|
-
const data = view.toBufferData(GltfDataType.Float);
|
|
1027
|
+
case GltfSchema_1.GltfDataType.Float: {
|
|
1028
|
+
const data = view.toBufferData(GltfSchema_1.GltfDataType.Float);
|
|
1123
1029
|
if (undefined === data)
|
|
1124
1030
|
return false;
|
|
1125
1031
|
mesh.normals = new Uint16Array(data.count);
|
|
@@ -1131,8 +1037,8 @@ class GltfReader {
|
|
|
1131
1037
|
}
|
|
1132
1038
|
return true;
|
|
1133
1039
|
}
|
|
1134
|
-
case GltfDataType.UnsignedByte: {
|
|
1135
|
-
const data = view.toBufferData(GltfDataType.UnsignedByte);
|
|
1040
|
+
case GltfSchema_1.GltfDataType.UnsignedByte: {
|
|
1041
|
+
const data = view.toBufferData(GltfSchema_1.GltfDataType.UnsignedByte);
|
|
1136
1042
|
if (undefined === data)
|
|
1137
1043
|
return false;
|
|
1138
1044
|
// ###TODO: we shouldn't have to allocate OctEncodedNormal objects...just use uint16s / numbers...
|
|
@@ -1149,12 +1055,34 @@ class GltfReader {
|
|
|
1149
1055
|
return false;
|
|
1150
1056
|
}
|
|
1151
1057
|
}
|
|
1058
|
+
readColors(mesh, attribute, accessorName) {
|
|
1059
|
+
const view = this.getBufferView(attribute, accessorName);
|
|
1060
|
+
if (!view || (GltfSchema_1.GltfDataType.Float !== view.type && GltfSchema_1.GltfDataType.UnsignedByte !== view.type && GltfSchema_1.GltfDataType.SignedByte !== view.type))
|
|
1061
|
+
return false;
|
|
1062
|
+
const data = view.toBufferData(view.type);
|
|
1063
|
+
if (!data)
|
|
1064
|
+
return false;
|
|
1065
|
+
const hasAlpha = "VEC4" === view.accessor.type;
|
|
1066
|
+
const factor = view.type === GltfSchema_1.GltfDataType.Float ? 255 : 1;
|
|
1067
|
+
const rgbt = new Uint8Array(4);
|
|
1068
|
+
const color = new Uint32Array(rgbt.buffer);
|
|
1069
|
+
for (let i = 0; i < data.count; i++) {
|
|
1070
|
+
const index = view.stride * i;
|
|
1071
|
+
rgbt[0] = data.buffer[index] * factor;
|
|
1072
|
+
rgbt[1] = data.buffer[index + 1] * factor;
|
|
1073
|
+
rgbt[2] = data.buffer[index + 2] * factor;
|
|
1074
|
+
rgbt[3] = hasAlpha ? (255 - data.buffer[index + 3] * factor) : 0;
|
|
1075
|
+
mesh.primitive.colors.push(mesh.primitive.colorMap.insert(color[0]));
|
|
1076
|
+
}
|
|
1077
|
+
return true;
|
|
1078
|
+
}
|
|
1152
1079
|
readUVParams(mesh, json, accessorName) {
|
|
1080
|
+
var _a;
|
|
1153
1081
|
const view = this.getBufferView(json, accessorName);
|
|
1154
1082
|
if (view === undefined)
|
|
1155
1083
|
return false;
|
|
1156
1084
|
switch (view.type) {
|
|
1157
|
-
case GltfDataType.Float: {
|
|
1085
|
+
case GltfSchema_1.GltfDataType.Float: {
|
|
1158
1086
|
const data = this.readBufferDataFloat(json, accessorName);
|
|
1159
1087
|
if (!data)
|
|
1160
1088
|
return false;
|
|
@@ -1172,16 +1100,13 @@ class GltfReader {
|
|
|
1172
1100
|
}
|
|
1173
1101
|
return true;
|
|
1174
1102
|
}
|
|
1175
|
-
case GltfDataType.UnsignedShort: {
|
|
1176
|
-
const
|
|
1177
|
-
const
|
|
1178
|
-
|
|
1179
|
-
return false;
|
|
1180
|
-
const rangeMin = core_bentley_1.JsonUtils.asArray(quantized.decodedMin);
|
|
1181
|
-
const rangeMax = core_bentley_1.JsonUtils.asArray(quantized.decodedMax);
|
|
1103
|
+
case GltfSchema_1.GltfDataType.UnsignedShort: {
|
|
1104
|
+
const quantized = (_a = view.accessor.extensions) === null || _a === void 0 ? void 0 : _a.WEB3D_quantized_attributes;
|
|
1105
|
+
const rangeMin = quantized === null || quantized === void 0 ? void 0 : quantized.decodedMin;
|
|
1106
|
+
const rangeMax = quantized === null || quantized === void 0 ? void 0 : quantized.decodedMax;
|
|
1182
1107
|
if (undefined === rangeMin || undefined === rangeMax)
|
|
1183
1108
|
return false;
|
|
1184
|
-
const qData = view.toBufferData(GltfDataType.UnsignedShort);
|
|
1109
|
+
const qData = view.toBufferData(GltfSchema_1.GltfDataType.UnsignedShort);
|
|
1185
1110
|
if (undefined === qData || !(qData.buffer instanceof Uint16Array))
|
|
1186
1111
|
return false;
|
|
1187
1112
|
mesh.uvRange = core_geometry_1.Range2d.createXYXY(rangeMin[0], rangeMin[1], rangeMax[0], rangeMax[1]);
|
|
@@ -1239,7 +1164,7 @@ class GltfReader {
|
|
|
1239
1164
|
// If any meshes are draco-compressed, dynamically load the decoder module and then decode the meshes.
|
|
1240
1165
|
const dracoMeshes = [];
|
|
1241
1166
|
for (const node of this.traverseScene()) {
|
|
1242
|
-
for (const meshId of
|
|
1167
|
+
for (const meshId of (0, GltfSchema_1.getGltfNodeMeshIds)(node)) {
|
|
1243
1168
|
const mesh = this._meshes[meshId];
|
|
1244
1169
|
if (mesh === null || mesh === void 0 ? void 0 : mesh.primitives)
|
|
1245
1170
|
for (const primitive of mesh.primitives)
|
|
@@ -1263,14 +1188,14 @@ class GltfReader {
|
|
|
1263
1188
|
// be required for the scene.
|
|
1264
1189
|
const promises = [];
|
|
1265
1190
|
try {
|
|
1266
|
-
for (const buffer of
|
|
1191
|
+
for (const buffer of (0, GltfSchema_1.gltfDictionaryIterator)(this._buffers))
|
|
1267
1192
|
if (!buffer.resolvedBuffer)
|
|
1268
1193
|
promises.push(this.resolveBuffer(buffer));
|
|
1269
1194
|
await Promise.all(promises);
|
|
1270
1195
|
if (this._isCanceled)
|
|
1271
1196
|
return;
|
|
1272
1197
|
promises.length = 0;
|
|
1273
|
-
for (const image of
|
|
1198
|
+
for (const image of (0, GltfSchema_1.gltfDictionaryIterator)(this._images))
|
|
1274
1199
|
if (!image.resolvedImage)
|
|
1275
1200
|
promises.push(this.resolveImage(image));
|
|
1276
1201
|
await Promise.all(promises);
|
|
@@ -1293,8 +1218,11 @@ class GltfReader {
|
|
|
1293
1218
|
this._dracoMeshes.set(ext, mesh);
|
|
1294
1219
|
}
|
|
1295
1220
|
resolveUrl(uri) {
|
|
1221
|
+
var _a, _b;
|
|
1296
1222
|
try {
|
|
1297
|
-
|
|
1223
|
+
const resolved = new URL(uri, this._baseUrl);
|
|
1224
|
+
resolved.search = (_b = (_a = this._baseUrl) === null || _a === void 0 ? void 0 : _a.search) !== null && _b !== void 0 ? _b : "";
|
|
1225
|
+
return resolved.toString();
|
|
1298
1226
|
}
|
|
1299
1227
|
catch (_) {
|
|
1300
1228
|
return undefined;
|
|
@@ -1356,7 +1284,7 @@ class GltfReader {
|
|
|
1356
1284
|
let wrapT = sampler === null || sampler === void 0 ? void 0 : sampler.wrapT;
|
|
1357
1285
|
if (undefined === wrapS && undefined === wrapT)
|
|
1358
1286
|
wrapS = wrapT = this.defaultWrapMode;
|
|
1359
|
-
if (GltfWrapMode.ClampToEdge === wrapS || GltfWrapMode.ClampToEdge === wrapT)
|
|
1287
|
+
if (GltfSchema_1.GltfWrapMode.ClampToEdge === wrapS || GltfSchema_1.GltfWrapMode.ClampToEdge === wrapT)
|
|
1360
1288
|
return core_common_1.RenderTexture.Type.TileSection;
|
|
1361
1289
|
return core_common_1.RenderTexture.Type.Normal;
|
|
1362
1290
|
}
|
|
@@ -1426,7 +1354,8 @@ exports.GltfReader = GltfReader;
|
|
|
1426
1354
|
* @public
|
|
1427
1355
|
*/
|
|
1428
1356
|
async function readGltfGraphics(args) {
|
|
1429
|
-
const
|
|
1357
|
+
const baseUrl = typeof args.baseUrl === "string" ? new URL(args.baseUrl) : args.baseUrl;
|
|
1358
|
+
const props = GltfReaderProps.create(args.gltf, true, baseUrl); // glTF supports exactly one coordinate system with y axis up.
|
|
1430
1359
|
const reader = props ? new GltfGraphicsReader(props, args) : undefined;
|
|
1431
1360
|
if (!reader)
|
|
1432
1361
|
return undefined;
|