@loaders.gl/gltf 4.0.0-beta.2 → 4.0.0-beta.4
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/{dist.min.js → dist.dev.js} +3016 -3442
- package/dist/{esm/glb-loader.js → glb-loader.js} +2 -2
- package/dist/glb-loader.js.map +1 -0
- package/dist/{esm/glb-writer.js → glb-writer.js} +2 -2
- package/dist/glb-writer.js.map +1 -0
- package/dist/{esm/gltf-loader.js → gltf-loader.js} +2 -2
- package/dist/gltf-loader.js.map +1 -0
- package/dist/{esm/gltf-writer.js → gltf-writer.js} +2 -2
- package/dist/gltf-writer.js.map +1 -0
- package/dist/index.cjs +3558 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/{esm/lib → lib}/api/gltf-extensions.js +11 -11
- package/dist/lib/api/gltf-extensions.js.map +1 -0
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/api/gltf-scenegraph.js +9 -17
- package/dist/lib/api/gltf-scenegraph.js.map +1 -0
- package/dist/{esm/lib → lib}/api/normalize-gltf-v1.js +7 -8
- package/dist/lib/api/normalize-gltf-v1.js.map +1 -0
- package/dist/{esm/lib → lib}/api/post-process-gltf.js +19 -20
- package/dist/lib/api/post-process-gltf.js.map +1 -0
- package/dist/lib/encoders/encode-glb.js.map +1 -0
- package/dist/{esm/lib → lib}/encoders/encode-gltf.js +1 -1
- package/dist/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/extensions/EXT_mesh_features.js +7 -5
- package/dist/lib/extensions/EXT_mesh_features.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_meshopt_compression.js +2 -2
- package/dist/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_structural_metadata.js +7 -7
- package/dist/lib/extensions/EXT_structural_metadata.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_texture_webp.js +2 -2
- package/dist/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_binary_gltf.js +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_draco_mesh_compression.js +2 -2
- package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_texture_basisu.js +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_texture_transform.js +6 -6
- package/dist/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/EXT_feature_metadata.js +3 -3
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_lights_punctual.js +2 -2
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_materials_unlit.js +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_techniques_webgl.js +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +1 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/extensions/utils/3d-tiles-utils.js +6 -9
- package/dist/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
- package/dist/lib/gltf-utils/get-typed-array.d.ts +10 -0
- package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
- package/dist/lib/gltf-utils/get-typed-array.js +51 -0
- package/dist/lib/gltf-utils/get-typed-array.js.map +1 -0
- package/dist/{esm/lib → lib}/gltf-utils/gltf-attribute-utils.js +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
- package/dist/lib/gltf-utils/gltf-constants.js.map +1 -0
- package/dist/lib/gltf-utils/gltf-utils.d.ts +2 -2
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/gltf-utils/gltf-utils.js +7 -32
- package/dist/lib/gltf-utils/gltf-utils.js.map +1 -0
- package/dist/{esm/lib → lib}/gltf-utils/resolve-url.js +1 -1
- package/dist/lib/gltf-utils/resolve-url.js.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-glb.js +6 -2
- package/dist/lib/parsers/parse-glb.js.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-gltf.js +7 -7
- package/dist/lib/parsers/parse-gltf.js.map +1 -0
- package/dist/lib/types/glb-types.js.map +1 -0
- package/dist/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +3 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
- package/dist/lib/types/gltf-json-schema.d.ts +7 -0
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-json-schema.js.map +1 -0
- package/dist/lib/types/gltf-postprocessed-schema.js.map +1 -0
- package/dist/lib/types/gltf-types.d.ts +1 -1
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.js.map +1 -0
- package/dist/lib/utils/assert.js.map +1 -0
- package/dist/lib/utils/version.js +2 -0
- package/dist/lib/utils/version.js.map +1 -0
- package/dist/{esm/meshopt → meshopt}/meshopt-decoder.js +1 -1
- package/dist/meshopt/meshopt-decoder.js.map +1 -0
- package/dist/{esm/webp → webp}/webp.js +1 -1
- package/dist/webp/webp.js.map +1 -0
- package/package.json +19 -11
- package/src/lib/api/gltf-scenegraph.ts +5 -17
- package/src/lib/extensions/EXT_mesh_features.ts +4 -2
- package/src/lib/extensions/utils/3d-tiles-utils.ts +17 -17
- package/src/lib/gltf-utils/get-typed-array.ts +53 -14
- package/src/lib/gltf-utils/gltf-utils.ts +3 -39
- package/src/lib/types/gltf-ext-mesh-features-schema.ts +3 -1
- package/src/lib/types/gltf-json-schema.ts +7 -0
- package/src/lib/types/gltf-types.ts +1 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/glb-loader.js +0 -54
- package/dist/es5/glb-loader.js.map +0 -1
- package/dist/es5/glb-writer.js +0 -34
- package/dist/es5/glb-writer.js.map +0 -1
- package/dist/es5/gltf-loader.js +0 -81
- package/dist/es5/gltf-loader.js.map +0 -1
- package/dist/es5/gltf-writer.js +0 -35
- package/dist/es5/gltf-writer.js.map +0 -1
- package/dist/es5/index.js +0 -88
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/api/gltf-extensions.js +0 -111
- package/dist/es5/lib/api/gltf-extensions.js.map +0 -1
- package/dist/es5/lib/api/gltf-scenegraph.js +0 -598
- package/dist/es5/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/es5/lib/api/normalize-gltf-v1.js +0 -331
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/es5/lib/api/post-process-gltf.js +0 -470
- package/dist/es5/lib/api/post-process-gltf.js.map +0 -1
- package/dist/es5/lib/encoders/encode-glb.js +0 -61
- package/dist/es5/lib/encoders/encode-glb.js.map +0 -1
- package/dist/es5/lib/encoders/encode-gltf.js +0 -20
- package/dist/es5/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_mesh_features.js +0 -99
- package/dist/es5/lib/extensions/EXT_mesh_features.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +0 -94
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_structural_metadata.js +0 -375
- package/dist/es5/lib/extensions/EXT_structural_metadata.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_texture_webp.js +0 -43
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +0 -39
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +0 -246
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +0 -36
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_texture_transform.js +0 -231
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +0 -260
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -99
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +0 -76
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -113
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/es5/lib/extensions/utils/3d-tiles-utils.js +0 -254
- package/dist/es5/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -23
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -68
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -48
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-utils.js +0 -115
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/resolve-url.js +0 -18
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/es5/lib/parsers/parse-glb.js +0 -120
- package/dist/es5/lib/parsers/parse-glb.js.map +0 -1
- package/dist/es5/lib/parsers/parse-gltf.js +0 -283
- package/dist/es5/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/es5/lib/types/glb-types.js +0 -2
- package/dist/es5/lib/types/glb-types.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-json-schema.js +0 -2
- package/dist/es5/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-postprocessed-schema.js +0 -2
- package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-types.js +0 -2
- package/dist/es5/lib/types/gltf-types.js.map +0 -1
- package/dist/es5/lib/utils/assert.js +0 -12
- package/dist/es5/lib/utils/assert.js.map +0 -1
- package/dist/es5/lib/utils/version.js +0 -9
- package/dist/es5/lib/utils/version.js.map +0 -1
- package/dist/es5/meshopt/meshopt-decoder.js +0 -215
- package/dist/es5/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/es5/webp/webp.js +0 -83
- package/dist/es5/webp/webp.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/glb-loader.js.map +0 -1
- package/dist/esm/glb-writer.js.map +0 -1
- package/dist/esm/gltf-loader.js.map +0 -1
- package/dist/esm/gltf-writer.js.map +0 -1
- package/dist/esm/index.js +0 -13
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/api/gltf-extensions.js.map +0 -1
- package/dist/esm/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/esm/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/esm/lib/api/post-process-gltf.js.map +0 -1
- package/dist/esm/lib/encoders/encode-glb.js.map +0 -1
- package/dist/esm/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_mesh_features.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_structural_metadata.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/esm/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/get-typed-array.js +0 -16
- package/dist/esm/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/esm/lib/parsers/parse-glb.js.map +0 -1
- package/dist/esm/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/esm/lib/types/glb-types.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-types.js.map +0 -1
- package/dist/esm/lib/utils/assert.js.map +0 -1
- package/dist/esm/lib/utils/version.js +0 -2
- package/dist/esm/lib/utils/version.js.map +0 -1
- package/dist/esm/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/esm/meshopt/meshopt-encoder.ts.disabled +0 -409
- package/dist/esm/webp/webp.js.map +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{esm/lib → lib}/encoders/encode-glb.js +0 -0
- /package/dist/{esm/lib → lib}/gltf-utils/gltf-constants.js +0 -0
- /package/dist/{esm/lib → lib}/types/glb-types.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-feature-metadata-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-mesh-features-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-structural-metadata-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-json-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-postprocessed-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-types.js +0 -0
- /package/dist/{esm/lib → lib}/utils/assert.js +0 -0
- /package/dist/{es5/meshopt → meshopt}/meshopt-encoder.ts.disabled +0 -0
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.postProcessGLTF = postProcessGLTF;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _assert = require("../utils/assert");
|
|
13
|
-
var _gltfUtils = require("../gltf-utils/gltf-utils");
|
|
14
|
-
var _DEFAULT_SAMPLER_PARA;
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
-
var COMPONENTS = {
|
|
18
|
-
SCALAR: 1,
|
|
19
|
-
VEC2: 2,
|
|
20
|
-
VEC3: 3,
|
|
21
|
-
VEC4: 4,
|
|
22
|
-
MAT2: 4,
|
|
23
|
-
MAT3: 9,
|
|
24
|
-
MAT4: 16
|
|
25
|
-
};
|
|
26
|
-
var BYTES = {
|
|
27
|
-
5120: 1,
|
|
28
|
-
5121: 1,
|
|
29
|
-
5122: 2,
|
|
30
|
-
5123: 2,
|
|
31
|
-
5125: 4,
|
|
32
|
-
5126: 4
|
|
33
|
-
};
|
|
34
|
-
var GL_SAMPLER = {
|
|
35
|
-
TEXTURE_MAG_FILTER: 0x2800,
|
|
36
|
-
TEXTURE_MIN_FILTER: 0x2801,
|
|
37
|
-
TEXTURE_WRAP_S: 0x2802,
|
|
38
|
-
TEXTURE_WRAP_T: 0x2803,
|
|
39
|
-
REPEAT: 0x2901,
|
|
40
|
-
LINEAR: 0x2601,
|
|
41
|
-
NEAREST_MIPMAP_LINEAR: 0x2702
|
|
42
|
-
};
|
|
43
|
-
var SAMPLER_PARAMETER_GLTF_TO_GL = {
|
|
44
|
-
magFilter: GL_SAMPLER.TEXTURE_MAG_FILTER,
|
|
45
|
-
minFilter: GL_SAMPLER.TEXTURE_MIN_FILTER,
|
|
46
|
-
wrapS: GL_SAMPLER.TEXTURE_WRAP_S,
|
|
47
|
-
wrapT: GL_SAMPLER.TEXTURE_WRAP_T
|
|
48
|
-
};
|
|
49
|
-
var DEFAULT_SAMPLER_PARAMETERS = (_DEFAULT_SAMPLER_PARA = {}, (0, _defineProperty2.default)(_DEFAULT_SAMPLER_PARA, GL_SAMPLER.TEXTURE_MAG_FILTER, GL_SAMPLER.LINEAR), (0, _defineProperty2.default)(_DEFAULT_SAMPLER_PARA, GL_SAMPLER.TEXTURE_MIN_FILTER, GL_SAMPLER.NEAREST_MIPMAP_LINEAR), (0, _defineProperty2.default)(_DEFAULT_SAMPLER_PARA, GL_SAMPLER.TEXTURE_WRAP_S, GL_SAMPLER.REPEAT), (0, _defineProperty2.default)(_DEFAULT_SAMPLER_PARA, GL_SAMPLER.TEXTURE_WRAP_T, GL_SAMPLER.REPEAT), _DEFAULT_SAMPLER_PARA);
|
|
50
|
-
function makeDefaultSampler() {
|
|
51
|
-
return {
|
|
52
|
-
id: 'default-sampler',
|
|
53
|
-
parameters: DEFAULT_SAMPLER_PARAMETERS
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function getBytesFromComponentType(componentType) {
|
|
57
|
-
return BYTES[componentType];
|
|
58
|
-
}
|
|
59
|
-
function getSizeFromAccessorType(type) {
|
|
60
|
-
return COMPONENTS[type];
|
|
61
|
-
}
|
|
62
|
-
var GLTFPostProcessor = function () {
|
|
63
|
-
function GLTFPostProcessor() {
|
|
64
|
-
(0, _classCallCheck2.default)(this, GLTFPostProcessor);
|
|
65
|
-
(0, _defineProperty2.default)(this, "baseUri", '');
|
|
66
|
-
(0, _defineProperty2.default)(this, "jsonUnprocessed", void 0);
|
|
67
|
-
(0, _defineProperty2.default)(this, "json", void 0);
|
|
68
|
-
(0, _defineProperty2.default)(this, "buffers", []);
|
|
69
|
-
(0, _defineProperty2.default)(this, "images", []);
|
|
70
|
-
}
|
|
71
|
-
(0, _createClass2.default)(GLTFPostProcessor, [{
|
|
72
|
-
key: "postProcess",
|
|
73
|
-
value: function postProcess(gltf) {
|
|
74
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
75
|
-
var json = gltf.json,
|
|
76
|
-
_gltf$buffers = gltf.buffers,
|
|
77
|
-
buffers = _gltf$buffers === void 0 ? [] : _gltf$buffers,
|
|
78
|
-
_gltf$images = gltf.images,
|
|
79
|
-
images = _gltf$images === void 0 ? [] : _gltf$images;
|
|
80
|
-
var _gltf$baseUri = gltf.baseUri,
|
|
81
|
-
baseUri = _gltf$baseUri === void 0 ? '' : _gltf$baseUri;
|
|
82
|
-
(0, _assert.assert)(json);
|
|
83
|
-
this.baseUri = baseUri;
|
|
84
|
-
this.buffers = buffers;
|
|
85
|
-
this.images = images;
|
|
86
|
-
this.jsonUnprocessed = json;
|
|
87
|
-
this.json = this._resolveTree(gltf.json, options);
|
|
88
|
-
return this.json;
|
|
89
|
-
}
|
|
90
|
-
}, {
|
|
91
|
-
key: "_resolveTree",
|
|
92
|
-
value: function _resolveTree(gltf) {
|
|
93
|
-
var _this = this;
|
|
94
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
95
|
-
var json = _objectSpread({}, gltf);
|
|
96
|
-
this.json = json;
|
|
97
|
-
if (gltf.bufferViews) {
|
|
98
|
-
json.bufferViews = gltf.bufferViews.map(function (bufView, i) {
|
|
99
|
-
return _this._resolveBufferView(bufView, i);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
if (gltf.images) {
|
|
103
|
-
json.images = gltf.images.map(function (image, i) {
|
|
104
|
-
return _this._resolveImage(image, i);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
if (gltf.samplers) {
|
|
108
|
-
json.samplers = gltf.samplers.map(function (sampler, i) {
|
|
109
|
-
return _this._resolveSampler(sampler, i);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
if (gltf.textures) {
|
|
113
|
-
json.textures = gltf.textures.map(function (texture, i) {
|
|
114
|
-
return _this._resolveTexture(texture, i);
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
if (gltf.accessors) {
|
|
118
|
-
json.accessors = gltf.accessors.map(function (accessor, i) {
|
|
119
|
-
return _this._resolveAccessor(accessor, i);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
if (gltf.materials) {
|
|
123
|
-
json.materials = gltf.materials.map(function (material, i) {
|
|
124
|
-
return _this._resolveMaterial(material, i);
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
if (gltf.meshes) {
|
|
128
|
-
json.meshes = gltf.meshes.map(function (mesh, i) {
|
|
129
|
-
return _this._resolveMesh(mesh, i);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
if (gltf.nodes) {
|
|
133
|
-
json.nodes = gltf.nodes.map(function (node, i) {
|
|
134
|
-
return _this._resolveNode(node, i);
|
|
135
|
-
});
|
|
136
|
-
json.nodes = json.nodes.map(function (node, i) {
|
|
137
|
-
return _this._resolveNodeChildren(node);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
if (gltf.skins) {
|
|
141
|
-
json.skins = gltf.skins.map(function (skin, i) {
|
|
142
|
-
return _this._resolveSkin(skin, i);
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
if (gltf.scenes) {
|
|
146
|
-
json.scenes = gltf.scenes.map(function (scene, i) {
|
|
147
|
-
return _this._resolveScene(scene, i);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
if (typeof this.json.scene === 'number' && json.scenes) {
|
|
151
|
-
json.scene = json.scenes[this.json.scene];
|
|
152
|
-
}
|
|
153
|
-
return json;
|
|
154
|
-
}
|
|
155
|
-
}, {
|
|
156
|
-
key: "getScene",
|
|
157
|
-
value: function getScene(index) {
|
|
158
|
-
return this._get(this.json.scenes, index);
|
|
159
|
-
}
|
|
160
|
-
}, {
|
|
161
|
-
key: "getNode",
|
|
162
|
-
value: function getNode(index) {
|
|
163
|
-
return this._get(this.json.nodes, index);
|
|
164
|
-
}
|
|
165
|
-
}, {
|
|
166
|
-
key: "getSkin",
|
|
167
|
-
value: function getSkin(index) {
|
|
168
|
-
return this._get(this.json.skins, index);
|
|
169
|
-
}
|
|
170
|
-
}, {
|
|
171
|
-
key: "getMesh",
|
|
172
|
-
value: function getMesh(index) {
|
|
173
|
-
return this._get(this.json.meshes, index);
|
|
174
|
-
}
|
|
175
|
-
}, {
|
|
176
|
-
key: "getMaterial",
|
|
177
|
-
value: function getMaterial(index) {
|
|
178
|
-
return this._get(this.json.materials, index);
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
key: "getAccessor",
|
|
182
|
-
value: function getAccessor(index) {
|
|
183
|
-
return this._get(this.json.accessors, index);
|
|
184
|
-
}
|
|
185
|
-
}, {
|
|
186
|
-
key: "getCamera",
|
|
187
|
-
value: function getCamera(index) {
|
|
188
|
-
return this._get(this.json.cameras, index);
|
|
189
|
-
}
|
|
190
|
-
}, {
|
|
191
|
-
key: "getTexture",
|
|
192
|
-
value: function getTexture(index) {
|
|
193
|
-
return this._get(this.json.textures, index);
|
|
194
|
-
}
|
|
195
|
-
}, {
|
|
196
|
-
key: "getSampler",
|
|
197
|
-
value: function getSampler(index) {
|
|
198
|
-
return this._get(this.json.samplers, index);
|
|
199
|
-
}
|
|
200
|
-
}, {
|
|
201
|
-
key: "getImage",
|
|
202
|
-
value: function getImage(index) {
|
|
203
|
-
return this._get(this.json.images, index);
|
|
204
|
-
}
|
|
205
|
-
}, {
|
|
206
|
-
key: "getBufferView",
|
|
207
|
-
value: function getBufferView(index) {
|
|
208
|
-
return this._get(this.json.bufferViews, index);
|
|
209
|
-
}
|
|
210
|
-
}, {
|
|
211
|
-
key: "getBuffer",
|
|
212
|
-
value: function getBuffer(index) {
|
|
213
|
-
return this._get(this.json.buffers, index);
|
|
214
|
-
}
|
|
215
|
-
}, {
|
|
216
|
-
key: "_get",
|
|
217
|
-
value: function _get(array, index) {
|
|
218
|
-
if ((0, _typeof2.default)(index) === 'object') {
|
|
219
|
-
return index;
|
|
220
|
-
}
|
|
221
|
-
var object = array && array[index];
|
|
222
|
-
if (!object) {
|
|
223
|
-
console.warn("glTF file error: Could not find ".concat(array, "[").concat(index, "]"));
|
|
224
|
-
}
|
|
225
|
-
return object;
|
|
226
|
-
}
|
|
227
|
-
}, {
|
|
228
|
-
key: "_resolveScene",
|
|
229
|
-
value: function _resolveScene(scene, index) {
|
|
230
|
-
var _this2 = this;
|
|
231
|
-
return _objectSpread(_objectSpread({}, scene), {}, {
|
|
232
|
-
id: scene.id || "scene-".concat(index),
|
|
233
|
-
nodes: (scene.nodes || []).map(function (node) {
|
|
234
|
-
return _this2.getNode(node);
|
|
235
|
-
})
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}, {
|
|
239
|
-
key: "_resolveNode",
|
|
240
|
-
value: function _resolveNode(gltfNode, index) {
|
|
241
|
-
var _this3 = this;
|
|
242
|
-
var node = _objectSpread(_objectSpread({}, gltfNode), {}, {
|
|
243
|
-
id: (gltfNode === null || gltfNode === void 0 ? void 0 : gltfNode.id) || "node-".concat(index)
|
|
244
|
-
});
|
|
245
|
-
if (gltfNode.mesh !== undefined) {
|
|
246
|
-
node.mesh = this.getMesh(gltfNode.mesh);
|
|
247
|
-
}
|
|
248
|
-
if (gltfNode.camera !== undefined) {
|
|
249
|
-
node.camera = this.getCamera(gltfNode.camera);
|
|
250
|
-
}
|
|
251
|
-
if (gltfNode.skin !== undefined) {
|
|
252
|
-
node.skin = this.getSkin(gltfNode.skin);
|
|
253
|
-
}
|
|
254
|
-
if (gltfNode.meshes !== undefined && gltfNode.meshes.length) {
|
|
255
|
-
node.mesh = gltfNode.meshes.reduce(function (accum, meshIndex) {
|
|
256
|
-
var mesh = _this3.getMesh(meshIndex);
|
|
257
|
-
accum.id = mesh.id;
|
|
258
|
-
accum.primitives = accum.primitives.concat(mesh.primitives);
|
|
259
|
-
return accum;
|
|
260
|
-
}, {
|
|
261
|
-
primitives: []
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
return node;
|
|
265
|
-
}
|
|
266
|
-
}, {
|
|
267
|
-
key: "_resolveNodeChildren",
|
|
268
|
-
value: function _resolveNodeChildren(node) {
|
|
269
|
-
var _this4 = this;
|
|
270
|
-
if (node.children) {
|
|
271
|
-
node.children = node.children.map(function (child) {
|
|
272
|
-
return _this4.getNode(child);
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
return node;
|
|
276
|
-
}
|
|
277
|
-
}, {
|
|
278
|
-
key: "_resolveSkin",
|
|
279
|
-
value: function _resolveSkin(gltfSkin, index) {
|
|
280
|
-
var inverseBindMatrices = typeof gltfSkin.inverseBindMatrices === 'number' ? this.getAccessor(gltfSkin.inverseBindMatrices) : undefined;
|
|
281
|
-
return _objectSpread(_objectSpread({}, gltfSkin), {}, {
|
|
282
|
-
id: gltfSkin.id || "skin-".concat(index),
|
|
283
|
-
inverseBindMatrices: inverseBindMatrices
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
}, {
|
|
287
|
-
key: "_resolveMesh",
|
|
288
|
-
value: function _resolveMesh(gltfMesh, index) {
|
|
289
|
-
var _this5 = this;
|
|
290
|
-
var mesh = _objectSpread(_objectSpread({}, gltfMesh), {}, {
|
|
291
|
-
id: gltfMesh.id || "mesh-".concat(index),
|
|
292
|
-
primitives: []
|
|
293
|
-
});
|
|
294
|
-
if (gltfMesh.primitives) {
|
|
295
|
-
mesh.primitives = gltfMesh.primitives.map(function (gltfPrimitive) {
|
|
296
|
-
var primitive = _objectSpread(_objectSpread({}, gltfPrimitive), {}, {
|
|
297
|
-
attributes: {},
|
|
298
|
-
indices: undefined,
|
|
299
|
-
material: undefined
|
|
300
|
-
});
|
|
301
|
-
var attributes = gltfPrimitive.attributes;
|
|
302
|
-
for (var attribute in attributes) {
|
|
303
|
-
primitive.attributes[attribute] = _this5.getAccessor(attributes[attribute]);
|
|
304
|
-
}
|
|
305
|
-
if (gltfPrimitive.indices !== undefined) {
|
|
306
|
-
primitive.indices = _this5.getAccessor(gltfPrimitive.indices);
|
|
307
|
-
}
|
|
308
|
-
if (gltfPrimitive.material !== undefined) {
|
|
309
|
-
primitive.material = _this5.getMaterial(gltfPrimitive.material);
|
|
310
|
-
}
|
|
311
|
-
return primitive;
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
return mesh;
|
|
315
|
-
}
|
|
316
|
-
}, {
|
|
317
|
-
key: "_resolveMaterial",
|
|
318
|
-
value: function _resolveMaterial(gltfMaterial, index) {
|
|
319
|
-
var material = _objectSpread(_objectSpread({}, gltfMaterial), {}, {
|
|
320
|
-
id: gltfMaterial.id || "material-".concat(index)
|
|
321
|
-
});
|
|
322
|
-
if (material.normalTexture) {
|
|
323
|
-
material.normalTexture = _objectSpread({}, material.normalTexture);
|
|
324
|
-
material.normalTexture.texture = this.getTexture(material.normalTexture.index);
|
|
325
|
-
}
|
|
326
|
-
if (material.occlusionTexture) {
|
|
327
|
-
material.occlusionTexture = _objectSpread({}, material.occlusionTexture);
|
|
328
|
-
material.occlusionTexture.texture = this.getTexture(material.occlusionTexture.index);
|
|
329
|
-
}
|
|
330
|
-
if (material.emissiveTexture) {
|
|
331
|
-
material.emissiveTexture = _objectSpread({}, material.emissiveTexture);
|
|
332
|
-
material.emissiveTexture.texture = this.getTexture(material.emissiveTexture.index);
|
|
333
|
-
}
|
|
334
|
-
if (!material.emissiveFactor) {
|
|
335
|
-
material.emissiveFactor = material.emissiveTexture ? [1, 1, 1] : [0, 0, 0];
|
|
336
|
-
}
|
|
337
|
-
if (material.pbrMetallicRoughness) {
|
|
338
|
-
material.pbrMetallicRoughness = _objectSpread({}, material.pbrMetallicRoughness);
|
|
339
|
-
var mr = material.pbrMetallicRoughness;
|
|
340
|
-
if (mr.baseColorTexture) {
|
|
341
|
-
mr.baseColorTexture = _objectSpread({}, mr.baseColorTexture);
|
|
342
|
-
mr.baseColorTexture.texture = this.getTexture(mr.baseColorTexture.index);
|
|
343
|
-
}
|
|
344
|
-
if (mr.metallicRoughnessTexture) {
|
|
345
|
-
mr.metallicRoughnessTexture = _objectSpread({}, mr.metallicRoughnessTexture);
|
|
346
|
-
mr.metallicRoughnessTexture.texture = this.getTexture(mr.metallicRoughnessTexture.index);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
return material;
|
|
350
|
-
}
|
|
351
|
-
}, {
|
|
352
|
-
key: "_resolveAccessor",
|
|
353
|
-
value: function _resolveAccessor(gltfAccessor, index) {
|
|
354
|
-
var bytesPerComponent = getBytesFromComponentType(gltfAccessor.componentType);
|
|
355
|
-
var components = getSizeFromAccessorType(gltfAccessor.type);
|
|
356
|
-
var bytesPerElement = bytesPerComponent * components;
|
|
357
|
-
var accessor = _objectSpread(_objectSpread({}, gltfAccessor), {}, {
|
|
358
|
-
id: gltfAccessor.id || "accessor-".concat(index),
|
|
359
|
-
bytesPerComponent: bytesPerComponent,
|
|
360
|
-
components: components,
|
|
361
|
-
bytesPerElement: bytesPerElement,
|
|
362
|
-
value: undefined,
|
|
363
|
-
bufferView: undefined,
|
|
364
|
-
sparse: undefined
|
|
365
|
-
});
|
|
366
|
-
if (gltfAccessor.bufferView !== undefined) {
|
|
367
|
-
accessor.bufferView = this.getBufferView(gltfAccessor.bufferView);
|
|
368
|
-
}
|
|
369
|
-
if (accessor.bufferView) {
|
|
370
|
-
var buffer = accessor.bufferView.buffer;
|
|
371
|
-
var _getAccessorArrayType = (0, _gltfUtils.getAccessorArrayTypeAndLength)(accessor, accessor.bufferView),
|
|
372
|
-
ArrayType = _getAccessorArrayType.ArrayType,
|
|
373
|
-
byteLength = _getAccessorArrayType.byteLength;
|
|
374
|
-
var byteOffset = (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;
|
|
375
|
-
var cutBuffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);
|
|
376
|
-
if (accessor.bufferView.byteStride) {
|
|
377
|
-
cutBuffer = this._getValueFromInterleavedBuffer(buffer, byteOffset, accessor.bufferView.byteStride, accessor.bytesPerElement, accessor.count);
|
|
378
|
-
}
|
|
379
|
-
accessor.value = new ArrayType(cutBuffer);
|
|
380
|
-
}
|
|
381
|
-
return accessor;
|
|
382
|
-
}
|
|
383
|
-
}, {
|
|
384
|
-
key: "_getValueFromInterleavedBuffer",
|
|
385
|
-
value: function _getValueFromInterleavedBuffer(buffer, byteOffset, byteStride, bytesPerElement, count) {
|
|
386
|
-
var result = new Uint8Array(count * bytesPerElement);
|
|
387
|
-
for (var i = 0; i < count; i++) {
|
|
388
|
-
var elementOffset = byteOffset + i * byteStride;
|
|
389
|
-
result.set(new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)), i * bytesPerElement);
|
|
390
|
-
}
|
|
391
|
-
return result.buffer;
|
|
392
|
-
}
|
|
393
|
-
}, {
|
|
394
|
-
key: "_resolveTexture",
|
|
395
|
-
value: function _resolveTexture(gltfTexture, index) {
|
|
396
|
-
return _objectSpread(_objectSpread({}, gltfTexture), {}, {
|
|
397
|
-
id: gltfTexture.id || "texture-".concat(index),
|
|
398
|
-
sampler: typeof gltfTexture.sampler === 'number' ? this.getSampler(gltfTexture.sampler) : makeDefaultSampler(),
|
|
399
|
-
source: typeof gltfTexture.source === 'number' ? this.getImage(gltfTexture.source) : undefined
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
}, {
|
|
403
|
-
key: "_resolveSampler",
|
|
404
|
-
value: function _resolveSampler(gltfSampler, index) {
|
|
405
|
-
var sampler = _objectSpread(_objectSpread({
|
|
406
|
-
id: gltfSampler.id || "sampler-".concat(index)
|
|
407
|
-
}, gltfSampler), {}, {
|
|
408
|
-
parameters: {}
|
|
409
|
-
});
|
|
410
|
-
for (var key in sampler) {
|
|
411
|
-
var glEnum = this._enumSamplerParameter(key);
|
|
412
|
-
if (glEnum !== undefined) {
|
|
413
|
-
sampler.parameters[glEnum] = sampler[key];
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
return sampler;
|
|
417
|
-
}
|
|
418
|
-
}, {
|
|
419
|
-
key: "_enumSamplerParameter",
|
|
420
|
-
value: function _enumSamplerParameter(key) {
|
|
421
|
-
return SAMPLER_PARAMETER_GLTF_TO_GL[key];
|
|
422
|
-
}
|
|
423
|
-
}, {
|
|
424
|
-
key: "_resolveImage",
|
|
425
|
-
value: function _resolveImage(gltfImage, index) {
|
|
426
|
-
var image = _objectSpread(_objectSpread({}, gltfImage), {}, {
|
|
427
|
-
id: gltfImage.id || "image-".concat(index),
|
|
428
|
-
image: null,
|
|
429
|
-
bufferView: gltfImage.bufferView !== undefined ? this.getBufferView(gltfImage.bufferView) : undefined
|
|
430
|
-
});
|
|
431
|
-
var preloadedImage = this.images[index];
|
|
432
|
-
if (preloadedImage) {
|
|
433
|
-
image.image = preloadedImage;
|
|
434
|
-
}
|
|
435
|
-
return image;
|
|
436
|
-
}
|
|
437
|
-
}, {
|
|
438
|
-
key: "_resolveBufferView",
|
|
439
|
-
value: function _resolveBufferView(gltfBufferView, index) {
|
|
440
|
-
var bufferIndex = gltfBufferView.buffer;
|
|
441
|
-
var arrayBuffer = this.buffers[bufferIndex].arrayBuffer;
|
|
442
|
-
var byteOffset = this.buffers[bufferIndex].byteOffset || 0;
|
|
443
|
-
if (gltfBufferView.byteOffset) {
|
|
444
|
-
byteOffset += gltfBufferView.byteOffset;
|
|
445
|
-
}
|
|
446
|
-
var bufferView = _objectSpread(_objectSpread({
|
|
447
|
-
id: "bufferView-".concat(index)
|
|
448
|
-
}, gltfBufferView), {}, {
|
|
449
|
-
buffer: this.buffers[bufferIndex],
|
|
450
|
-
data: new Uint8Array(arrayBuffer, byteOffset, gltfBufferView.byteLength)
|
|
451
|
-
});
|
|
452
|
-
return bufferView;
|
|
453
|
-
}
|
|
454
|
-
}, {
|
|
455
|
-
key: "_resolveCamera",
|
|
456
|
-
value: function _resolveCamera(gltfCamera, index) {
|
|
457
|
-
var camera = _objectSpread(_objectSpread({}, gltfCamera), {}, {
|
|
458
|
-
id: gltfCamera.id || "camera-".concat(index)
|
|
459
|
-
});
|
|
460
|
-
if (camera.perspective) {}
|
|
461
|
-
if (camera.orthographic) {}
|
|
462
|
-
return camera;
|
|
463
|
-
}
|
|
464
|
-
}]);
|
|
465
|
-
return GLTFPostProcessor;
|
|
466
|
-
}();
|
|
467
|
-
function postProcessGLTF(gltf, options) {
|
|
468
|
-
return new GLTFPostProcessor().postProcess(gltf, options);
|
|
469
|
-
}
|
|
470
|
-
//# sourceMappingURL=post-process-gltf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post-process-gltf.js","names":["_assert","require","_gltfUtils","_DEFAULT_SAMPLER_PARA","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","COMPONENTS","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","BYTES","GL_SAMPLER","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","REPEAT","LINEAR","NEAREST_MIPMAP_LINEAR","SAMPLER_PARAMETER_GLTF_TO_GL","magFilter","minFilter","wrapS","wrapT","DEFAULT_SAMPLER_PARAMETERS","makeDefaultSampler","id","parameters","getBytesFromComponentType","componentType","getSizeFromAccessorType","type","GLTFPostProcessor","_classCallCheck2","_createClass2","value","postProcess","gltf","options","undefined","json","_gltf$buffers","buffers","_gltf$images","images","_gltf$baseUri","baseUri","assert","jsonUnprocessed","_resolveTree","_this","bufferViews","map","bufView","_resolveBufferView","image","_resolveImage","samplers","sampler","_resolveSampler","textures","texture","_resolveTexture","accessors","accessor","_resolveAccessor","materials","material","_resolveMaterial","meshes","mesh","_resolveMesh","nodes","node","_resolveNode","_resolveNodeChildren","skins","skin","_resolveSkin","scenes","scene","_resolveScene","getScene","index","_get","getNode","getSkin","getMesh","getMaterial","getAccessor","getCamera","cameras","getTexture","getSampler","getImage","getBufferView","getBuffer","array","_typeof2","console","warn","concat","_this2","gltfNode","_this3","camera","reduce","accum","meshIndex","primitives","_this4","children","child","gltfSkin","inverseBindMatrices","gltfMesh","_this5","gltfPrimitive","primitive","attributes","indices","attribute","gltfMaterial","normalTexture","occlusionTexture","emissiveTexture","emissiveFactor","pbrMetallicRoughness","mr","baseColorTexture","metallicRoughnessTexture","gltfAccessor","bytesPerComponent","components","bytesPerElement","bufferView","sparse","buffer","_getAccessorArrayType","getAccessorArrayTypeAndLength","ArrayType","byteLength","byteOffset","cutBuffer","arrayBuffer","slice","byteStride","_getValueFromInterleavedBuffer","count","result","Uint8Array","elementOffset","set","gltfTexture","gltfSampler","glEnum","_enumSamplerParameter","gltfImage","preloadedImage","gltfBufferView","bufferIndex","data","_resolveCamera","gltfCamera","perspective","orthographic","postProcessGLTF"],"sources":["../../../../src/lib/api/post-process-gltf.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {GLTFWithBuffers} from '../types/gltf-types';\nimport type {ParseGLTFOptions} from '../parsers/parse-gltf';\n\nimport type {\n GLTF,\n GLTFAccessor,\n GLTFBufferView,\n GLTFCamera,\n GLTFImage,\n GLTFMaterial,\n GLTFMesh,\n GLTFNode,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture\n} from '../types/gltf-json-schema';\n\nimport type {\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFBufferPostprocessed,\n GLTFBufferViewPostprocessed,\n GLTFCameraPostprocessed,\n GLTFImagePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFMeshPostprocessed,\n GLTFNodePostprocessed,\n GLTFSamplerPostprocessed,\n GLTFScenePostprocessed,\n GLTFSkinPostprocessed,\n GLTFTexturePostprocessed,\n GLTFMeshPrimitivePostprocessed\n} from '../types/gltf-postprocessed-schema';\n\nimport {assert} from '../utils/assert';\nimport {getAccessorArrayTypeAndLength} from '../gltf-utils/gltf-utils';\n\n// This is a post processor for loaded glTF files\n// The goal is to make the loaded data easier to use in WebGL applications\n//\n// Functions:\n// * Resolve indexed arrays structure of glTF into a linked tree.\n// * Translate stringified enum keys and values into WebGL constants.\n// * Load images (optional)\n\n// ENUM LOOKUP\n\nconst COMPONENTS = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\n\nconst BYTES = {\n 5120: 1, // BYTE\n 5121: 1, // UNSIGNED_BYTE\n 5122: 2, // SHORT\n 5123: 2, // UNSIGNED_SHORT\n 5125: 4, // UNSIGNED_INT\n 5126: 4 // FLOAT\n};\n\nconst GL_SAMPLER = {\n // Sampler parameters\n TEXTURE_MAG_FILTER: 0x2800,\n TEXTURE_MIN_FILTER: 0x2801,\n TEXTURE_WRAP_S: 0x2802,\n TEXTURE_WRAP_T: 0x2803,\n\n // Sampler default values\n REPEAT: 0x2901,\n LINEAR: 0x2601,\n NEAREST_MIPMAP_LINEAR: 0x2702\n};\n\nconst SAMPLER_PARAMETER_GLTF_TO_GL = {\n magFilter: GL_SAMPLER.TEXTURE_MAG_FILTER,\n minFilter: GL_SAMPLER.TEXTURE_MIN_FILTER,\n wrapS: GL_SAMPLER.TEXTURE_WRAP_S,\n wrapT: GL_SAMPLER.TEXTURE_WRAP_T\n};\n\n// When undefined, a sampler with repeat wrapping and auto filtering should be used.\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#texture\nconst DEFAULT_SAMPLER_PARAMETERS = {\n [GL_SAMPLER.TEXTURE_MAG_FILTER]: GL_SAMPLER.LINEAR,\n [GL_SAMPLER.TEXTURE_MIN_FILTER]: GL_SAMPLER.NEAREST_MIPMAP_LINEAR,\n [GL_SAMPLER.TEXTURE_WRAP_S]: GL_SAMPLER.REPEAT,\n [GL_SAMPLER.TEXTURE_WRAP_T]: GL_SAMPLER.REPEAT\n};\n\nfunction makeDefaultSampler(): GLTFSamplerPostprocessed {\n return {\n id: 'default-sampler',\n parameters: DEFAULT_SAMPLER_PARAMETERS\n };\n}\n\nfunction getBytesFromComponentType(componentType) {\n return BYTES[componentType];\n}\n\nfunction getSizeFromAccessorType(type) {\n return COMPONENTS[type];\n}\n\nclass GLTFPostProcessor {\n baseUri: string = '';\n // @ts-expect-error\n jsonUnprocessed: GLTF;\n // @ts-expect-error\n json: GLTFPostprocessed;\n buffers: {\n arrayBuffer: ArrayBuffer;\n byteOffset: number;\n byteLength: number;\n }[] = [];\n images: any[] = [];\n\n postProcess(gltf: GLTFWithBuffers, options = {}) {\n const {json, buffers = [], images = []} = gltf;\n // @ts-expect-error\n const {baseUri = ''} = gltf;\n assert(json);\n\n this.baseUri = baseUri;\n this.buffers = buffers;\n this.images = images;\n this.jsonUnprocessed = json;\n\n this.json = this._resolveTree(gltf.json, options);\n\n return this.json;\n }\n\n // Convert indexed glTF structure into tree structure\n // cross-link index resolution, enum lookup, convenience calculations\n // eslint-disable-next-line complexity, max-statements\n _resolveTree(gltf: GLTF, options = {}): GLTFPostprocessed {\n // @ts-expect-error\n const json: GLTFPostprocessed = {...gltf};\n this.json = json;\n\n if (gltf.bufferViews) {\n json.bufferViews = gltf.bufferViews.map((bufView, i) => this._resolveBufferView(bufView, i));\n }\n if (gltf.images) {\n json.images = gltf.images.map((image, i) => this._resolveImage(image, i));\n }\n if (gltf.samplers) {\n json.samplers = gltf.samplers.map((sampler, i) => this._resolveSampler(sampler, i));\n }\n if (gltf.textures) {\n json.textures = gltf.textures.map((texture, i) => this._resolveTexture(texture, i));\n }\n if (gltf.accessors) {\n json.accessors = gltf.accessors.map((accessor, i) => this._resolveAccessor(accessor, i));\n }\n if (gltf.materials) {\n json.materials = gltf.materials.map((material, i) => this._resolveMaterial(material, i));\n }\n if (gltf.meshes) {\n json.meshes = gltf.meshes.map((mesh, i) => this._resolveMesh(mesh, i));\n }\n if (gltf.nodes) {\n json.nodes = gltf.nodes.map((node, i) => this._resolveNode(node, i));\n json.nodes = json.nodes.map((node, i) => this._resolveNodeChildren(node));\n }\n if (gltf.skins) {\n json.skins = gltf.skins.map((skin, i) => this._resolveSkin(skin, i));\n }\n if (gltf.scenes) {\n json.scenes = gltf.scenes.map((scene, i) => this._resolveScene(scene, i));\n }\n if (typeof this.json.scene === 'number' && json.scenes) {\n json.scene = json.scenes[this.json.scene];\n }\n\n return json;\n }\n\n getScene(index: number): GLTFScenePostprocessed {\n return this._get(this.json.scenes, index);\n }\n\n getNode(index: number): GLTFNodePostprocessed {\n return this._get(this.json.nodes, index);\n }\n\n getSkin(index: number): GLTFSkinPostprocessed {\n return this._get(this.json.skins, index);\n }\n\n getMesh(index: number): GLTFMeshPostprocessed {\n return this._get(this.json.meshes, index);\n }\n\n getMaterial(index: number): GLTFMaterialPostprocessed {\n return this._get(this.json.materials, index);\n }\n\n getAccessor(index: number): GLTFAccessorPostprocessed {\n return this._get(this.json.accessors, index);\n }\n\n getCamera(index: number): GLTFCameraPostprocessed {\n return this._get(this.json.cameras, index);\n }\n\n getTexture(index: number): GLTFTexturePostprocessed {\n return this._get(this.json.textures, index);\n }\n\n getSampler(index: number): GLTFSamplerPostprocessed {\n return this._get(this.json.samplers, index);\n }\n\n getImage(index: number): GLTFImagePostprocessed {\n return this._get(this.json.images, index);\n }\n\n getBufferView(index: number): GLTFBufferViewPostprocessed {\n return this._get(this.json.bufferViews, index);\n }\n\n getBuffer(index: number): GLTFBufferPostprocessed {\n return this._get(this.json.buffers, index);\n }\n\n _get<T>(array: T[] | undefined, index: number): T {\n // check if already resolved\n if (typeof index === 'object') {\n return index;\n }\n const object = array && array[index];\n if (!object) {\n console.warn(`glTF file error: Could not find ${array}[${index}]`); // eslint-disable-line\n }\n return object as T;\n }\n\n // PARSING HELPERS\n\n _resolveScene(scene: GLTFScene, index: number): GLTFScenePostprocessed {\n return {\n ...scene,\n // @ts-ignore\n id: scene.id || `scene-${index}`,\n nodes: (scene.nodes || []).map((node) => this.getNode(node))\n };\n }\n\n _resolveNode(gltfNode: GLTFNode, index: number): GLTFNodePostprocessed {\n // @ts-expect-error\n const node: GLTFNodePostprocessed = {\n ...gltfNode,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfNode?.id || `node-${index}`\n };\n if (gltfNode.mesh !== undefined) {\n node.mesh = this.getMesh(gltfNode.mesh);\n }\n if (gltfNode.camera !== undefined) {\n node.camera = this.getCamera(gltfNode.camera);\n }\n if (gltfNode.skin !== undefined) {\n node.skin = this.getSkin(gltfNode.skin);\n }\n\n // TODO deprecated - Delete in v4.0?\n // @ts-expect-error node.meshes does not seem to be part of the GLTF standard\n if (gltfNode.meshes !== undefined && gltfNode.meshes.length) {\n // @ts-expect-error\n node.mesh = gltfNode.meshes.reduce(\n (accum, meshIndex) => {\n const mesh = this.getMesh(meshIndex);\n accum.id = mesh.id;\n accum.primitives = accum.primitives.concat(mesh.primitives);\n return accum;\n },\n {primitives: []}\n );\n }\n\n return node;\n }\n\n _resolveNodeChildren(node: GLTFNodePostprocessed): GLTFNodePostprocessed {\n if (node.children) {\n // @ts-expect-error node.children are numbers at this stage\n node.children = node.children.map((child) => this.getNode(child));\n }\n return node;\n }\n\n _resolveSkin(gltfSkin: GLTFSkin, index: number): GLTFSkinPostprocessed {\n const inverseBindMatrices =\n typeof gltfSkin.inverseBindMatrices === 'number'\n ? this.getAccessor(gltfSkin.inverseBindMatrices)\n : undefined;\n\n return {\n ...gltfSkin,\n id: gltfSkin.id || `skin-${index}`,\n inverseBindMatrices\n };\n }\n\n _resolveMesh(gltfMesh: GLTFMesh, index: number): GLTFMeshPostprocessed {\n const mesh: GLTFMeshPostprocessed = {\n ...gltfMesh,\n id: gltfMesh.id || `mesh-${index}`,\n primitives: []\n };\n if (gltfMesh.primitives) {\n mesh.primitives = gltfMesh.primitives.map((gltfPrimitive) => {\n const primitive: GLTFMeshPrimitivePostprocessed = {\n ...gltfPrimitive,\n attributes: {},\n indices: undefined,\n material: undefined\n };\n const attributes = gltfPrimitive.attributes;\n for (const attribute in attributes) {\n primitive.attributes[attribute] = this.getAccessor(attributes[attribute]);\n }\n if (gltfPrimitive.indices !== undefined) {\n primitive.indices = this.getAccessor(gltfPrimitive.indices);\n }\n if (gltfPrimitive.material !== undefined) {\n primitive.material = this.getMaterial(gltfPrimitive.material);\n }\n return primitive;\n });\n }\n return mesh;\n }\n\n _resolveMaterial(gltfMaterial: GLTFMaterial, index: number): GLTFMaterialPostprocessed {\n // @ts-expect-error\n const material: GLTFMaterialPostprocessed = {\n ...gltfMaterial,\n // @ts-expect-error\n id: gltfMaterial.id || `material-${index}`\n };\n if (material.normalTexture) {\n material.normalTexture = {...material.normalTexture};\n material.normalTexture.texture = this.getTexture(material.normalTexture.index);\n }\n if (material.occlusionTexture) {\n material.occlusionTexture = {...material.occlusionTexture};\n material.occlusionTexture.texture = this.getTexture(material.occlusionTexture.index);\n }\n if (material.emissiveTexture) {\n material.emissiveTexture = {...material.emissiveTexture};\n material.emissiveTexture.texture = this.getTexture(material.emissiveTexture.index);\n }\n if (!material.emissiveFactor) {\n material.emissiveFactor = material.emissiveTexture ? [1, 1, 1] : [0, 0, 0];\n }\n\n if (material.pbrMetallicRoughness) {\n material.pbrMetallicRoughness = {...material.pbrMetallicRoughness};\n const mr = material.pbrMetallicRoughness;\n if (mr.baseColorTexture) {\n mr.baseColorTexture = {...mr.baseColorTexture};\n mr.baseColorTexture.texture = this.getTexture(mr.baseColorTexture.index);\n }\n if (mr.metallicRoughnessTexture) {\n mr.metallicRoughnessTexture = {...mr.metallicRoughnessTexture};\n mr.metallicRoughnessTexture.texture = this.getTexture(mr.metallicRoughnessTexture.index);\n }\n }\n return material;\n }\n\n _resolveAccessor(gltfAccessor: GLTFAccessor, index: number): GLTFAccessorPostprocessed {\n // Look up enums\n const bytesPerComponent = getBytesFromComponentType(gltfAccessor.componentType);\n const components = getSizeFromAccessorType(gltfAccessor.type);\n const bytesPerElement = bytesPerComponent * components;\n\n const accessor: GLTFAccessorPostprocessed = {\n ...gltfAccessor,\n // @ts-expect-error\n id: gltfAccessor.id || `accessor-${index}`,\n bytesPerComponent,\n components,\n bytesPerElement,\n value: undefined!,\n bufferView: undefined!,\n sparse: undefined!\n };\n if (gltfAccessor.bufferView !== undefined) {\n // Draco encoded meshes don't have bufferView\n accessor.bufferView = this.getBufferView(gltfAccessor.bufferView);\n }\n\n // Create TypedArray for the accessor\n // Note: The canonical way to instantiate is to ignore this array and create\n // WebGLBuffer's using the bufferViews.\n if (accessor.bufferView) {\n const buffer = accessor.bufferView.buffer;\n const {ArrayType, byteLength} = getAccessorArrayTypeAndLength(accessor, accessor.bufferView);\n const byteOffset =\n (accessor.bufferView.byteOffset || 0) + (accessor.byteOffset || 0) + buffer.byteOffset;\n let cutBuffer = buffer.arrayBuffer.slice(byteOffset, byteOffset + byteLength);\n if (accessor.bufferView.byteStride) {\n cutBuffer = this._getValueFromInterleavedBuffer(\n buffer,\n byteOffset,\n accessor.bufferView.byteStride,\n accessor.bytesPerElement,\n accessor.count\n );\n }\n accessor.value = new ArrayType(cutBuffer);\n }\n\n return accessor;\n }\n\n /**\n * Take values of particular accessor from interleaved buffer\n * various parts of the buffer\n * @param buffer\n * @param byteOffset\n * @param byteStride\n * @param bytesPerElement\n * @param count\n * @returns\n */\n _getValueFromInterleavedBuffer(\n buffer,\n byteOffset: number,\n byteStride: number,\n bytesPerElement: number,\n count: number\n ): ArrayBufferLike {\n const result = new Uint8Array(count * bytesPerElement);\n for (let i = 0; i < count; i++) {\n const elementOffset = byteOffset + i * byteStride;\n result.set(\n new Uint8Array(buffer.arrayBuffer.slice(elementOffset, elementOffset + bytesPerElement)),\n i * bytesPerElement\n );\n }\n return result.buffer;\n }\n\n _resolveTexture(gltfTexture: GLTFTexture, index: number): GLTFTexturePostprocessed {\n return {\n ...gltfTexture,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfTexture.id || `texture-${index}`,\n sampler:\n typeof gltfTexture.sampler === 'number'\n ? this.getSampler(gltfTexture.sampler)\n : makeDefaultSampler(),\n source: typeof gltfTexture.source === 'number' ? this.getImage(gltfTexture.source) : undefined\n };\n }\n\n _resolveSampler(gltfSampler: GLTFSampler, index: number): GLTFSamplerPostprocessed {\n const sampler: GLTFSamplerPostprocessed = {\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfSampler.id || `sampler-${index}`,\n ...gltfSampler,\n parameters: {}\n };\n // Map textual parameters to GL parameter values\n for (const key in sampler) {\n const glEnum = this._enumSamplerParameter(key);\n if (glEnum !== undefined) {\n sampler.parameters[glEnum] = sampler[key];\n }\n }\n return sampler;\n }\n\n _enumSamplerParameter(key: string): number {\n return SAMPLER_PARAMETER_GLTF_TO_GL[key];\n }\n\n _resolveImage(gltfImage: GLTFImage, index: number): GLTFImagePostprocessed {\n const image: GLTFImagePostprocessed = {\n ...gltfImage,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfImage.id || `image-${index}`,\n image: null!,\n bufferView:\n gltfImage.bufferView !== undefined ? this.getBufferView(gltfImage.bufferView) : undefined\n };\n\n // Check if image has been preloaded by the GLTFLoader\n // If so, link it into the JSON and drop the URI\n const preloadedImage = this.images[index];\n if (preloadedImage) {\n image.image = preloadedImage;\n }\n\n return image;\n }\n\n _resolveBufferView(gltfBufferView: GLTFBufferView, index: number): GLTFBufferViewPostprocessed {\n const bufferIndex = gltfBufferView.buffer;\n const arrayBuffer = this.buffers[bufferIndex].arrayBuffer;\n // Add offset of buffer, then offset of buffer view\n let byteOffset = this.buffers[bufferIndex].byteOffset || 0;\n if (gltfBufferView.byteOffset) {\n byteOffset += gltfBufferView.byteOffset;\n }\n\n const bufferView: GLTFBufferViewPostprocessed = {\n // // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: `bufferView-${index}`,\n ...gltfBufferView,\n // ...this.buffers[bufferIndex],\n buffer: this.buffers[bufferIndex],\n data: new Uint8Array(arrayBuffer, byteOffset, gltfBufferView.byteLength)\n };\n\n return bufferView;\n }\n\n _resolveCamera(gltfCamera: GLTFCamera, index): GLTFCameraPostprocessed {\n const camera: GLTFCameraPostprocessed = {\n ...gltfCamera,\n // @ts-expect-error id could already be present, glTF standard does not prevent it\n id: gltfCamera.id || `camera-${index}`\n };\n\n // TODO - create 4x4 matrices\n if (camera.perspective) {\n // camera.matrix = createPerspectiveMatrix(camera.perspective);\n }\n if (camera.orthographic) {\n // camera.matrix = createOrthographicMatrix(camera.orthographic);\n }\n return camera;\n }\n}\n\nexport function postProcessGLTF(\n gltf: GLTFWithBuffers,\n options?: ParseGLTFOptions\n): GLTFPostprocessed {\n return new GLTFPostProcessor().postProcess(gltf, options);\n}\n"],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.encodeGLBSync = encodeGLBSync;
|
|
7
|
-
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
8
|
-
var MAGIC_glTF = 0x46546c67;
|
|
9
|
-
var MAGIC_JSON = 0x4e4f534a;
|
|
10
|
-
var MAGIC_BIN = 0x004e4942;
|
|
11
|
-
var LE = true;
|
|
12
|
-
function encodeGLBSync(glb, dataView) {
|
|
13
|
-
var byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
14
|
-
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
15
|
-
var _glb$magic = glb.magic,
|
|
16
|
-
magic = _glb$magic === void 0 ? MAGIC_glTF : _glb$magic,
|
|
17
|
-
_glb$version = glb.version,
|
|
18
|
-
version = _glb$version === void 0 ? 2 : _glb$version,
|
|
19
|
-
_glb$json = glb.json,
|
|
20
|
-
json = _glb$json === void 0 ? {} : _glb$json,
|
|
21
|
-
binary = glb.binary;
|
|
22
|
-
var byteOffsetStart = byteOffset;
|
|
23
|
-
if (dataView) {
|
|
24
|
-
dataView.setUint32(byteOffset + 0, magic, LE);
|
|
25
|
-
dataView.setUint32(byteOffset + 4, version, LE);
|
|
26
|
-
dataView.setUint32(byteOffset + 8, 0, LE);
|
|
27
|
-
}
|
|
28
|
-
var byteOffsetFileLength = byteOffset + 8;
|
|
29
|
-
byteOffset += 12;
|
|
30
|
-
var byteOffsetJsonHeader = byteOffset;
|
|
31
|
-
if (dataView) {
|
|
32
|
-
dataView.setUint32(byteOffset + 0, 0, LE);
|
|
33
|
-
dataView.setUint32(byteOffset + 4, MAGIC_JSON, LE);
|
|
34
|
-
}
|
|
35
|
-
byteOffset += 8;
|
|
36
|
-
var jsonString = JSON.stringify(json);
|
|
37
|
-
byteOffset = (0, _loaderUtils.copyPaddedStringToDataView)(dataView, byteOffset, jsonString, 4);
|
|
38
|
-
if (dataView) {
|
|
39
|
-
var jsonByteLength = byteOffset - byteOffsetJsonHeader - 8;
|
|
40
|
-
dataView.setUint32(byteOffsetJsonHeader + 0, jsonByteLength, LE);
|
|
41
|
-
}
|
|
42
|
-
if (binary) {
|
|
43
|
-
var byteOffsetBinHeader = byteOffset;
|
|
44
|
-
if (dataView) {
|
|
45
|
-
dataView.setUint32(byteOffset + 0, 0, LE);
|
|
46
|
-
dataView.setUint32(byteOffset + 4, MAGIC_BIN, LE);
|
|
47
|
-
}
|
|
48
|
-
byteOffset += 8;
|
|
49
|
-
byteOffset = (0, _loaderUtils.copyPaddedArrayBufferToDataView)(dataView, byteOffset, binary, 4);
|
|
50
|
-
if (dataView) {
|
|
51
|
-
var binByteLength = byteOffset - byteOffsetBinHeader - 8;
|
|
52
|
-
dataView.setUint32(byteOffsetBinHeader + 0, binByteLength, LE);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (dataView) {
|
|
56
|
-
var fileByteLength = byteOffset - byteOffsetStart;
|
|
57
|
-
dataView.setUint32(byteOffsetFileLength, fileByteLength, LE);
|
|
58
|
-
}
|
|
59
|
-
return byteOffset;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=encode-glb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"encode-glb.js","names":["_loaderUtils","require","MAGIC_glTF","MAGIC_JSON","MAGIC_BIN","LE","encodeGLBSync","glb","dataView","byteOffset","arguments","length","undefined","options","_glb$magic","magic","_glb$version","version","_glb$json","json","binary","byteOffsetStart","setUint32","byteOffsetFileLength","byteOffsetJsonHeader","jsonString","JSON","stringify","copyPaddedStringToDataView","jsonByteLength","byteOffsetBinHeader","copyPaddedArrayBufferToDataView","binByteLength","fileByteLength"],"sources":["../../../../src/lib/encoders/encode-glb.ts"],"sourcesContent":["/* eslint-disable camelcase, max-statements */\nimport {\n copyPaddedStringToDataView,\n copyPaddedArrayBufferToDataView\n} from '@loaders.gl/loader-utils';\n// import type {GLB} from '../types/glb-types';\n\nconst MAGIC_glTF = 0x46546c67; // glTF in ASCII\nconst MAGIC_JSON = 0x4e4f534a; // JSON in ASCII\nconst MAGIC_BIN = 0x004e4942; // BIN\\0 in ASCII\n\nconst LE = true; // Binary GLTF is little endian.\n\nexport type GLBEncodeOptions = {};\n\n/**\n * Encode the full GLB buffer with header etc\n *\n * @param glb\n * @param dataView - if `null`, does not encode but just calculates length\n * @param byteOffset\n * @param options\n * @returns\n *\n * @see https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification\n * @todo type GLB argument\n */\nexport function encodeGLBSync(\n glb,\n dataView: DataView | null,\n byteOffset = 0,\n options: GLBEncodeOptions = {}\n) {\n const {magic = MAGIC_glTF, version = 2, json = {}, binary} = glb;\n\n const byteOffsetStart = byteOffset;\n\n // Write GLB Header\n if (dataView) {\n dataView.setUint32(byteOffset + 0, magic, LE); // Magic number (the ASCII string 'glTF').\n dataView.setUint32(byteOffset + 4, version, LE); // Version 2 of binary glTF container format uint32\n dataView.setUint32(byteOffset + 8, 0, LE); // Total byte length of generated file (uint32), will be set last\n }\n const byteOffsetFileLength = byteOffset + 8;\n byteOffset += 12; // GLB_FILE_HEADER_SIZE\n\n // Write the JSON chunk header\n const byteOffsetJsonHeader = byteOffset;\n if (dataView) {\n dataView.setUint32(byteOffset + 0, 0, LE); // Byte length of json chunk (will be written later)\n dataView.setUint32(byteOffset + 4, MAGIC_JSON, LE); // Chunk type\n }\n byteOffset += 8; // GLB_CHUNK_HEADER_SIZE\n\n // Write the JSON chunk\n const jsonString = JSON.stringify(json);\n byteOffset = copyPaddedStringToDataView(dataView, byteOffset, jsonString, 4);\n\n // Now we know the JSON chunk length so we can write it.\n if (dataView) {\n const jsonByteLength = byteOffset - byteOffsetJsonHeader - 8; // GLB_CHUNK_HEADER_SIZE\n dataView.setUint32(byteOffsetJsonHeader + 0, jsonByteLength, LE); // Byte length of json chunk (uint32)\n }\n\n // Write the BIN chunk if present. The BIN chunk is optional.\n if (binary) {\n const byteOffsetBinHeader = byteOffset;\n\n // Write the BIN chunk header\n if (dataView) {\n dataView.setUint32(byteOffset + 0, 0, LE); // Byte length BIN (uint32)\n dataView.setUint32(byteOffset + 4, MAGIC_BIN, LE); // Chunk type\n }\n byteOffset += 8; // GLB_CHUNK_HEADER_SIZE\n\n byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, binary, 4);\n\n // Now we know the BIN chunk length so we can write it.\n if (dataView) {\n const binByteLength = byteOffset - byteOffsetBinHeader - 8; // GLB_CHUNK_HEADER_SIZE\n dataView.setUint32(byteOffsetBinHeader + 0, binByteLength, LE); // Byte length BIN (uint32)\n }\n }\n\n // Now we know the glb file length so we can write it.\n if (dataView) {\n const fileByteLength = byteOffset - byteOffsetStart;\n dataView.setUint32(byteOffsetFileLength, fileByteLength, LE); // Total byte length of generated file (uint32)\n }\n\n return byteOffset;\n}\n"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.encodeGLTFSync = encodeGLTFSync;
|
|
7
|
-
var _encodeGlb = require("./encode-glb");
|
|
8
|
-
function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {
|
|
9
|
-
convertBuffersToBase64(gltf);
|
|
10
|
-
return (0, _encodeGlb.encodeGLBSync)(gltf, arrayBuffer, byteOffset, options);
|
|
11
|
-
}
|
|
12
|
-
function convertBuffersToBase64(gltf) {
|
|
13
|
-
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
14
|
-
_ref$firstBuffer = _ref.firstBuffer,
|
|
15
|
-
firstBuffer = _ref$firstBuffer === void 0 ? 0 : _ref$firstBuffer;
|
|
16
|
-
if (gltf.buffers && gltf.buffers.length > firstBuffer) {
|
|
17
|
-
throw new Error('encodeGLTF: multiple buffers not yet implemented');
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=encode-gltf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"encode-gltf.js","names":["_encodeGlb","require","encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","encodeGLBSync","_ref","arguments","length","undefined","_ref$firstBuffer","firstBuffer","buffers","Error"],"sources":["../../../../src/lib/encoders/encode-gltf.ts"],"sourcesContent":["import {encodeGLBSync} from './encode-glb';\n\nexport type GLTFEncodeOptions = Record<string, any>;\n\n/**\n * Encode the full glTF file as a binary GLB file\n * Returns an ArrayBuffer that represents the complete GLB image that can be saved to file\n *\n * @todo - Does not support encoding to non-GLB versions of glTF format. Other formats\n * - Encode as a textual JSON file with binary data in base64 data URLs.\n * - Encode as a JSON with all images (and buffers?) in separate binary files\n *\n * glb-file-format-specification\n * @see https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n *\n * @param gltf\n * @param arrayBuffer\n * @param byteOffset\n * @param options\n * @returns\n */\nexport function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {\n convertBuffersToBase64(gltf);\n\n // TODO: Copy buffers to binary\n\n return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);\n}\n\nfunction convertBuffersToBase64(gltf, {firstBuffer = 0} = {}) {\n if (gltf.buffers && gltf.buffers.length > firstBuffer) {\n throw new Error('encodeGLTF: multiple buffers not yet implemented');\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAqBO,SAASC,cAAcA,CAACC,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAE;EACrEC,sBAAsB,CAACJ,IAAI,CAAC;EAI5B,OAAO,IAAAK,wBAAa,EAACL,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,CAAC;AAC9D;AAEA,SAASC,sBAAsBA,CAACJ,IAAI,EAA0B;EAAA,IAAAM,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;IAAAG,gBAAA,GAAAJ,IAAA,CAArBK,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,CAAC,GAAAA,gBAAA;EACpD,IAAIV,IAAI,CAACY,OAAO,IAAIZ,IAAI,CAACY,OAAO,CAACJ,MAAM,GAAGG,WAAW,EAAE;IACrD,MAAM,IAAIE,KAAK,CAAC,kDAAkD,CAAC;EACrE;AACF"}
|