@threepipe/plugin-3d-tiles-renderer 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +12 -0
  3. package/dist/TilesRendererPlugin.d.ts +3 -3
  4. package/dist/TilesRendererPlugin.d.ts.map +1 -1
  5. package/dist/index.js +53 -38
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +53 -38
  8. package/dist/index.mjs.map +1 -1
  9. package/docs/.nojekyll +1 -0
  10. package/docs/assets/hierarchy.js +1 -0
  11. package/docs/assets/highlight.css +29 -0
  12. package/docs/assets/icons.js +18 -0
  13. package/docs/assets/icons.svg +1 -0
  14. package/docs/assets/main.js +60 -0
  15. package/docs/assets/navigation.js +1 -0
  16. package/docs/assets/search.js +1 -0
  17. package/docs/assets/style.css +1633 -0
  18. package/docs/classes/B3DMLoadPlugin.html +12 -0
  19. package/docs/classes/CMPTLoadPlugin.html +12 -0
  20. package/docs/classes/DeepZoomImageLoadPlugin.html +12 -0
  21. package/docs/classes/EnvironmentControls2.html +20 -0
  22. package/docs/classes/EnvironmentControlsPlugin.html +27 -0
  23. package/docs/classes/GlobeControls2.html +24 -0
  24. package/docs/classes/GlobeControlsPlugin.html +27 -0
  25. package/docs/classes/I3DMLoadPlugin.html +12 -0
  26. package/docs/classes/PNTSLoadPlugin.html +12 -0
  27. package/docs/classes/SlippyMapTilesLoadPlugin.html +13 -0
  28. package/docs/classes/TilesRendererLoader.html +8 -0
  29. package/docs/classes/TilesRendererPlugin.html +33 -0
  30. package/docs/hierarchy.html +1 -0
  31. package/docs/index.html +1 -0
  32. package/docs/interfaces/TilesImportOptions.html +11 -0
  33. package/docs/types/TilesRendererGroup.html +1 -0
  34. package/docs/variables/CesiumIonAuthPlugin.html +1 -0
  35. package/package.json +7 -9
  36. package/src/TilesRendererPlugin.ts +68 -44
package/CHANGELOG.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog for @threepipe/3d-tiles-renderer
2
+
3
+ All notable changes to this plugin will be documented in this file.
4
+
5
+ [//]: # (The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).)
6
+
7
+ ## [Unreleased]
8
+
9
+ ### Added
10
+
11
+ - NA
12
+
13
+ ## [0.3.1] - 2025-09-01
14
+
15
+ ### Changed
16
+
17
+ - Update [threepipe](https://threepipe.org/) `peerDependency` to [0.1.0](https://github.com/repalash/threepipe/releases/tag/v0.1.0)
18
+
19
+ [unreleased]: https://github.com/repalash/threepipe/tree/dev/plugins/3d-tiles-renderer
20
+ [0.3.1]: https://github.com/repalash/threepipe/releases/tag/@threepipe/plugin-3d-tiles-renderer-v0.3.1
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # @threepipe/3d-tiles-renderer
2
+
3
+ [3d-tiles-renderer](https://github.com/NASA-AMMOS/3DTilesRendererJS) integration and plugin for [threepipe](https://threepipe.org/) to import and render [OGC Tiles](https://www.ogc.org/standards/3dtiles/).
4
+
5
+ [Github](https://github.com/repalash/threepipe/tree/dev/plugins/3d-tiles-renderer) —
6
+ [Examples](https://threepipe.org/examples/?q=tile#3d-tiles-renderer/) —
7
+ [API Reference](https://threepipe.org/docs/)
8
+
9
+ [![NPM Package](https://img.shields.io/npm/v/@threepipe/plugin-3d-tiles-renderer.svg)](https://www.npmjs.com/package/@threepipe/plugin-3d-tiles-renderer)
10
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/license/apache-2-0/)
11
+
12
+ **Documentation and Guides**: [threepipe.org/package/plugin-3d-tiles-renderer](https://threepipe.org/package/plugin-3d-tiles-renderer.html)
@@ -1,4 +1,4 @@
1
- import { AViewerPluginEventMap, AViewerPluginSync, IAssetImporter, ILoader, Importer, IObject3D, Loader, ImportAddOptions, LoadingManager, ThreeViewer } from 'threepipe';
1
+ import { AViewerPluginEventMap, AViewerPluginSync, IAssetImporter, ILoader, ImportAddOptions, Importer, IObject3D, Loader, LoadingManager, ThreeViewer } from 'threepipe';
2
2
  import { TilesGroup, TilesRenderer } from '3d-tiles-renderer';
3
3
  export type TilesRendererGroup = TilesGroup & IObject3D;
4
4
  export interface TilesRendererPluginEventMap extends AViewerPluginEventMap {
@@ -29,8 +29,8 @@ export declare class TilesRendererPlugin extends AViewerPluginSync<TilesRenderer
29
29
  private _preRender;
30
30
  private _resize;
31
31
  private _cachedRefs?;
32
- private _addSceneObject;
33
- promptForURL(): Promise<(IObject3D<import('threepipe').IObject3DEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ITexture<import('threepipe').TextureEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ICamera<import('threepipe').ICameraEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ISerializedConfig & import('threepipe').ImportResultExtras) | (import('threepipe').RootSceneImportResult & import('threepipe').ImportResultExtras) | (import('threepipe').IMaterial<import('threepipe').IMaterialEventMap> & import('threepipe').ImportResultExtras) | import('threepipe').ImportResult[] | TilesRendererGroup | undefined>;
32
+ private _objectExt;
33
+ promptForURL(): Promise<(import('threepipe').ISerializedConfig & import('threepipe').ImportResultExtras) | (IObject3D<import('threepipe').IObject3DEventMap, import('threepipe').IGeometry<import('three').NormalBufferAttributes, import('threepipe').BufferGeometryEventMap> | undefined, import('threepipe').IMaterial<import('threepipe').IMaterialEventMap> | import('threepipe').IMaterial<import('threepipe').IMaterialEventMap>[] | undefined> & import('threepipe').ImportResultExtras) | (import('threepipe').ITexture<import('threepipe').TextureEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ICamera<import('threepipe').ICameraEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').RootSceneImportResult & import('threepipe').ImportResultExtras) | (import('threepipe').IMaterial<import('threepipe').IMaterialEventMap> & import('threepipe').ImportResultExtras) | import('threepipe').ImportResult[] | TilesRendererGroup | undefined>;
34
34
  }
35
35
  export declare class TilesRendererLoader extends Loader implements ILoader<TilesRendererGroup> {
36
36
  isTilesRendererLoader: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TilesRendererPlugin.d.ts","sourceRoot":"","sources":["../src/TilesRendererPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,iBAAiB,EAIjB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EAMT,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,WAAW,EAEd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAK3D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACtE,OAAO,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;IACpC,UAAU,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACnF,gBAAuB,UAAU,EAAE,MAAM,CAAwB;IACjE,OAAO,UAAO;IACd,YAAY,UAAK;IAEjB,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAY;IAErC,OAAO,EAAE,kBAAkB,EAAE,CAAK;IAElC,SAAS,CAAC,SAAS,gCAAyH;;IAMtI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoB5C,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAW/F,OAAO,CAAC,MAAM,EAAE,WAAW;IAiB3B,QAAQ,CAAC,MAAM,EAAE,WAAW;IAc5B,OAAO,CAAC,UAAU,CAcjB;IAsBD,OAAO,CAAC,OAAO,CAKd;IAED,OAAO,CAAC,WAAW,CAAC,CAA2F;IAE/G,OAAO,CAAC,eAAe,CAwCtB;IAGK,YAAY;CAMrB;AAED,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,OAAO,CAAC,kBAAkB,CAAC;IAClF,qBAAqB,UAAO;IAC5B,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAEhC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAKhF;gBAEW,OAAO,EAAE,cAAc;IAInC,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAW1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;CA8FrI;AAED,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,GAAG;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAA;IACD,mBAAmB,CAAC,EAAE,OAAO,GAAG;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAAA;CACxF;AAED,OAAO,QAAQ,WAAW,CAAA;IACtB,UAAU,gBAAgB;QACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAC7B;CACJ"}
1
+ {"version":3,"file":"TilesRendererPlugin.d.ts","sourceRoot":"","sources":["../src/TilesRendererPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,iBAAiB,EAKjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,SAAS,EAIT,MAAM,EACN,cAAc,EAGd,WAAW,EAId,MAAM,WAAW,CAAA;AAClB,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAU3D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACtE,OAAO,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;IACpC,UAAU,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACnF,gBAAuB,UAAU,EAAE,MAAM,CAAwB;IACjE,OAAO,UAAO;IACd,YAAY,UAAK;IAEjB,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAY;IAErC,OAAO,EAAE,kBAAkB,EAAE,CAAK;IAElC,SAAS,CAAC,SAAS,gCAAyH;;IAMtI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoB5C,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAW/F,OAAO,CAAC,MAAM,EAAE,WAAW;IAkB3B,QAAQ,CAAC,MAAM,EAAE,WAAW;IAe5B,OAAO,CAAC,UAAU,CAcjB;IAsBD,OAAO,CAAC,OAAO,CAKd;IAED,OAAO,CAAC,WAAW,CAAC,CAA2F;IAE/G,OAAO,CAAC,UAAU,CAyCjB;IAGK,YAAY;CAMrB;AAED,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,OAAO,CAAC,kBAAkB,CAAC;IAClF,qBAAqB,UAAO;IAC5B,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAEhC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAKhF;gBAEW,OAAO,EAAE,cAAc;IAInC,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAW1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;CA2GrI;AAED,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,GAAG;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAA;IACD,mBAAmB,CAAC,EAAE,OAAO,GAAG;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAAA;CACxF;AAED,OAAO,QAAQ,WAAW,CAAA;IACtB,UAAU,gBAAgB;QACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAC7B;CACJ"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  })(this, function(exports2, THREE) {
4
4
  "use strict";/**
5
5
  * @license
6
- * @threepipe/plugin-3d-tiles-renderer v0.2.1
6
+ * @threepipe/plugin-3d-tiles-renderer v0.3.1
7
7
  * Copyright 2022-2025 repalash <palash@shaders.app>
8
8
  * Apache-2.0 License
9
9
  * See ./dependencies.txt for any bundled third-party dependencies and licenses.
@@ -6207,7 +6207,7 @@
6207
6207
  south,
6208
6208
  east,
6209
6209
  north,
6210
- -1e5,
6210
+ -INITIAL_HEIGHT_RANGE,
6211
6211
  INITIAL_HEIGHT_RANGE
6212
6212
  ]
6213
6213
  },
@@ -6222,7 +6222,7 @@
6222
6222
  south,
6223
6223
  west + step * x + step,
6224
6224
  north,
6225
- -1e5,
6225
+ -INITIAL_HEIGHT_RANGE,
6226
6226
  INITIAL_HEIGHT_RANGE
6227
6227
  ];
6228
6228
  const child = this.expand(0, x, 0, region);
@@ -10164,39 +10164,41 @@
10164
10164
  group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10165
10165
  }
10166
10166
  };
10167
- this._addSceneObject = (e) => {
10168
- const object = e.object;
10169
- const group = object;
10170
- if (!group || !group.tilesRenderer || !this._viewer) return;
10171
- if (!this._cachedRefs) {
10172
- this._cachedRefs = {
10173
- lruCache: group.tilesRenderer.lruCache,
10174
- downloadQueue: group.tilesRenderer.downloadQueue,
10175
- parseQueue: group.tilesRenderer.parseQueue,
10176
- // @ts-expect-error not in ts
10177
- processNodeQueue: group.tilesRenderer.processNodeQueue
10178
- };
10179
- } else {
10180
- group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10181
- group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10182
- group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10183
- group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10184
- }
10185
- this.objects.push(group);
10186
- group.tilesRenderer.registerPlugin({
10187
- dispose: () => {
10188
- const index = this.objects.indexOf(group);
10189
- if (index !== -1) this.objects.splice(index, 1);
10190
- this.dispatchEvent({ type: "removeTile", group });
10167
+ this._objectExt = {
10168
+ uuid: "TilesRendererPluginObjectExt",
10169
+ isCompatible: (o) => !!o.tilesRenderer,
10170
+ onRegister: (group) => {
10171
+ if (!group || !group.tilesRenderer || !this._viewer) return;
10172
+ if (!this._cachedRefs) {
10173
+ this._cachedRefs = {
10174
+ lruCache: group.tilesRenderer.lruCache,
10175
+ downloadQueue: group.tilesRenderer.downloadQueue,
10176
+ parseQueue: group.tilesRenderer.parseQueue,
10177
+ // @ts-expect-error not in ts
10178
+ processNodeQueue: group.tilesRenderer.processNodeQueue
10179
+ };
10180
+ } else {
10181
+ group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10182
+ group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10183
+ group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10184
+ group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10191
10185
  }
10192
- });
10193
- group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10194
- group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10195
- group.tilesRenderer.update();
10196
- group.addEventListener("dispose", () => {
10197
- group.tilesRenderer.dispose();
10198
- });
10199
- this.dispatchEvent({ type: "addTile", group });
10186
+ this.objects.push(group);
10187
+ group.tilesRenderer.registerPlugin({
10188
+ dispose: () => {
10189
+ const index = this.objects.indexOf(group);
10190
+ if (index !== -1) this.objects.splice(index, 1);
10191
+ this.dispatchEvent({ type: "removeTile", group });
10192
+ }
10193
+ });
10194
+ group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10195
+ group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10196
+ group.tilesRenderer.update();
10197
+ group.addEventListener("dispose", () => {
10198
+ group.tilesRenderer.dispose();
10199
+ });
10200
+ this.dispatchEvent({ type: "addTile", group });
10201
+ }
10200
10202
  };
10201
10203
  }
10202
10204
  async load(url, options) {
@@ -10239,7 +10241,7 @@
10239
10241
  viewer.assetManager.registerGltfExtension(gltfStructuralMetadataExtension);
10240
10242
  viewer.assetManager.registerGltfExtension(gltfMeshFeaturesExtension);
10241
10243
  viewer.assetManager.importer.addImporter(this._importer);
10242
- viewer.scene.addEventListener("addSceneObject", this._addSceneObject);
10244
+ viewer.object3dManager.registerObjectExtension(this._objectExt);
10243
10245
  viewer.renderManager.addEventListener("preRender", this._preRender);
10244
10246
  viewer.renderManager.addEventListener("resize", this._resize);
10245
10247
  }
@@ -10248,7 +10250,7 @@
10248
10250
  viewer.assetManager.unregisterGltfExtension(gltfCesiumRTCExtension.name);
10249
10251
  viewer.assetManager.unregisterGltfExtension(gltfStructuralMetadataExtension.name);
10250
10252
  viewer.assetManager.unregisterGltfExtension(gltfMeshFeaturesExtension.name);
10251
- viewer.scene.removeEventListener("addSceneObject", this._addSceneObject);
10253
+ viewer.object3dManager.unregisterObjectExtension(this._objectExt);
10252
10254
  viewer.renderManager.removeEventListener("preRender", this._preRender);
10253
10255
  viewer.renderManager.removeEventListener("resize", this._resize);
10254
10256
  super.onRemove(viewer);
@@ -10326,7 +10328,20 @@
10326
10328
  });
10327
10329
  tiles.addEventListener("load-tile-set", (e) => {
10328
10330
  const isRoot = e.tileSet === tiles.rootTileSet;
10329
- if (isRoot && resolve) resolve();
10331
+ if (isRoot && resolve) {
10332
+ resolve();
10333
+ }
10334
+ });
10335
+ group.userData.rootPathRefresh = true;
10336
+ group._rootPathRefreshed = true;
10337
+ group._sChildren = [];
10338
+ tiles.registerPlugin({
10339
+ processTileModel: (model, tile) => {
10340
+ var _a2;
10341
+ if (tile === ((_a2 = tiles.rootTileSet) == null ? void 0 : _a2.root)) {
10342
+ group._sChildren = [model];
10343
+ }
10344
+ }
10330
10345
  });
10331
10346
  const ai = this.ai;
10332
10347
  if (ai) {