@xeokit/xeokit-sdk 2.6.107 → 2.6.108

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.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * xeokit-sdk v2.6.107
3
- * Commit: a1558d52a694d6b8435eb85661f0d13b0a1a6fea
4
- * Built: 2026-03-12T09:08:30.647Z
2
+ * xeokit-sdk v2.6.108
3
+ * Commit: a2bfb2cb967c8a3925c74e4039bfc60f136128c2
4
+ * Built: 2026-04-03T14:14:43.600Z
5
5
  */
6
6
 
7
7
  if (typeof window !== 'undefined') {
8
- window.__XEOKIT__ = { version: '2.6.107', commit: 'a1558d52a694d6b8435eb85661f0d13b0a1a6fea', built: '2026-03-12T09:08:30.647Z' };
8
+ window.__XEOKIT__ = { version: '2.6.108', commit: 'a2bfb2cb967c8a3925c74e4039bfc60f136128c2', built: '2026-04-03T14:14:43.600Z' };
9
9
  }
10
10
 
11
11
  'use strict';
@@ -62771,6 +62771,20 @@ class MetaScene {
62771
62771
  return metaModel;
62772
62772
  }
62773
62773
 
62774
+ /**
62775
+ * Destroys this MetaScene.
62776
+ */
62777
+ _destroy() {
62778
+ this.viewer = null;
62779
+ this.scene = null;
62780
+ this.metaModels = {};
62781
+ this.propertySets = {};
62782
+ this.metaObjects = {};
62783
+ this.metaObjectsByType = {};
62784
+ this.rootMetaObjects = {};
62785
+ this._eventSubs = {};
62786
+ }
62787
+
62774
62788
  /**
62775
62789
  * Removes a {@link MetaModel} from this MetaScene.
62776
62790
  *
@@ -101825,10 +101839,25 @@ class Label3D {
101825
101839
  this.__visible = true;
101826
101840
 
101827
101841
  this._updatePos = () => {
101828
- toClipSpace(camera, this._start, tmpVec4a);
101829
- math.mulVec4Scalar(tmpVec4a, 1.0 / tmpVec4a[3]);
101830
- toCanvasSpace(scene.canvas.canvas, parentElement, tmpVec4a, tmpVec2a);
101831
- this._label.setPos(tmpVec2a[0], tmpVec2a[1]);
101842
+ const p0 = tmpVec4a;
101843
+ toClipSpace(camera, this._start, p0);
101844
+ math.mulVec3Scalar(p0, 1.0 / p0[3]);
101845
+
101846
+ const outsideFrustum = ((p0[3] < 0)
101847
+ ||
101848
+ (p0[0] < -1) || (p0[0] > 1)
101849
+ ||
101850
+ (p0[1] < -1) || (p0[1] > 1)
101851
+ ||
101852
+ (p0[2] < -1) || (p0[2] > 1));
101853
+ const culled = outsideFrustum || scene._sectionPlanesState.sectionPlanes.some(
101854
+ plane => plane.active && (math.dotVec3(plane.dir, math.subVec3(plane.pos, this._start, tmpVec3a$2)) > 0));
101855
+
101856
+ this._label.setCulled(culled);
101857
+ if (! culled) {
101858
+ toCanvasSpace(scene.canvas.canvas, parentElement, p0, tmpVec2a);
101859
+ this._label.setPos(tmpVec2a[0], tmpVec2a[1]);
101860
+ }
101832
101861
  };
101833
101862
 
101834
101863
  const setPosOnWire = (p0, p1, yOff) => {
@@ -103340,6 +103369,7 @@ class Viewer {
103340
103369
  const plugin = plugins[i];
103341
103370
  plugin.destroy();
103342
103371
  }
103372
+ this.metaScene._destroy();
103343
103373
  this.scene.destroy();
103344
103374
  }
103345
103375
  }
@@ -1,11 +1,11 @@
1
1
  /**
2
- * xeokit-sdk v2.6.107
3
- * Commit: a1558d52a694d6b8435eb85661f0d13b0a1a6fea
4
- * Built: 2026-03-12T09:08:30.647Z
2
+ * xeokit-sdk v2.6.108
3
+ * Commit: a2bfb2cb967c8a3925c74e4039bfc60f136128c2
4
+ * Built: 2026-04-03T14:14:43.600Z
5
5
  */
6
6
 
7
7
  if (typeof window !== 'undefined') {
8
- window.__XEOKIT__ = { version: '2.6.107', commit: 'a1558d52a694d6b8435eb85661f0d13b0a1a6fea', built: '2026-03-12T09:08:30.647Z' };
8
+ window.__XEOKIT__ = { version: '2.6.108', commit: 'a2bfb2cb967c8a3925c74e4039bfc60f136128c2', built: '2026-04-03T14:14:43.600Z' };
9
9
  }
10
10
 
11
11
  /** @private */
@@ -62767,6 +62767,20 @@ class MetaScene {
62767
62767
  return metaModel;
62768
62768
  }
62769
62769
 
62770
+ /**
62771
+ * Destroys this MetaScene.
62772
+ */
62773
+ _destroy() {
62774
+ this.viewer = null;
62775
+ this.scene = null;
62776
+ this.metaModels = {};
62777
+ this.propertySets = {};
62778
+ this.metaObjects = {};
62779
+ this.metaObjectsByType = {};
62780
+ this.rootMetaObjects = {};
62781
+ this._eventSubs = {};
62782
+ }
62783
+
62770
62784
  /**
62771
62785
  * Removes a {@link MetaModel} from this MetaScene.
62772
62786
  *
@@ -101821,10 +101835,25 @@ class Label3D {
101821
101835
  this.__visible = true;
101822
101836
 
101823
101837
  this._updatePos = () => {
101824
- toClipSpace(camera, this._start, tmpVec4a);
101825
- math.mulVec4Scalar(tmpVec4a, 1.0 / tmpVec4a[3]);
101826
- toCanvasSpace(scene.canvas.canvas, parentElement, tmpVec4a, tmpVec2a);
101827
- this._label.setPos(tmpVec2a[0], tmpVec2a[1]);
101838
+ const p0 = tmpVec4a;
101839
+ toClipSpace(camera, this._start, p0);
101840
+ math.mulVec3Scalar(p0, 1.0 / p0[3]);
101841
+
101842
+ const outsideFrustum = ((p0[3] < 0)
101843
+ ||
101844
+ (p0[0] < -1) || (p0[0] > 1)
101845
+ ||
101846
+ (p0[1] < -1) || (p0[1] > 1)
101847
+ ||
101848
+ (p0[2] < -1) || (p0[2] > 1));
101849
+ const culled = outsideFrustum || scene._sectionPlanesState.sectionPlanes.some(
101850
+ plane => plane.active && (math.dotVec3(plane.dir, math.subVec3(plane.pos, this._start, tmpVec3a$2)) > 0));
101851
+
101852
+ this._label.setCulled(culled);
101853
+ if (! culled) {
101854
+ toCanvasSpace(scene.canvas.canvas, parentElement, p0, tmpVec2a);
101855
+ this._label.setPos(tmpVec2a[0], tmpVec2a[1]);
101856
+ }
101828
101857
  };
101829
101858
 
101830
101859
  const setPosOnWire = (p0, p1, yOff) => {
@@ -103336,6 +103365,7 @@ class Viewer {
103336
103365
  const plugin = plugins[i];
103337
103366
  plugin.destroy();
103338
103367
  }
103368
+ this.metaScene._destroy();
103339
103369
  this.scene.destroy();
103340
103370
  }
103341
103371
  }
@@ -1,10 +1,10 @@
1
1
  /**
2
- * xeokit-sdk v2.6.107
3
- * Commit: a1558d52a694d6b8435eb85661f0d13b0a1a6fea
4
- * Built: 2026-03-12T09:08:30.647Z
2
+ * xeokit-sdk v2.6.108
3
+ * Commit: a2bfb2cb967c8a3925c74e4039bfc60f136128c2
4
+ * Built: 2026-04-03T14:14:43.600Z
5
5
  */
6
6
 
7
- var _globalThis$loaders3,_DRACO_EXTERNAL_LIBRA,_DEFAULT_SAMPLER_PARA;var _marked=/*#__PURE__*/_regeneratorRuntime().mark(makeStringIterator),_marked2=/*#__PURE__*/_regeneratorRuntime().mark(makeArrayBufferIterator),_marked3=/*#__PURE__*/_regeneratorRuntime().mark(makeMeshPrimitiveIterator);function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct.bind();}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};}return _construct.apply(null,arguments);}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return exports;};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key];}try{define({},"");}catch(err){define=function define(obj,key,value){return obj[key]=value;};}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=function(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult();}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult;}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg);}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done};}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg);}};}(innerFn,self,context),generator;}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)};}catch(err){return{type:"throw",arg:err};}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,function(){return this;});var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){define(prototype,method,function(arg){return this._invoke(method,arg);});});}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==_typeof(value)&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject);},function(err){invoke("throw",err,resolve,reject);}):PromiseImpl.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result);},function(error){return invoke("throw",error,resolve,reject);});}reject(record.arg);}var previousPromise;this._invoke=function(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl(function(resolve,reject){invoke(method,arg,resolve,reject);});}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();};}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(undefined===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator["return"]&&(context.method="return",context.arg=undefined,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method");}return ContinueSentinel;}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=undefined),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel);}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry);}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record;}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0);}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;){if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;}return next.value=undefined,next.done=!0,next;};return next.next=next;}}return{next:doneResult};}function doneResult(){return{value:undefined,done:!0};}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(Gp,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name));},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun;},exports.awrap=function(arg){return{__await:arg};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,function(){return this;}),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then(function(result){return result.done?result.value:iter.next();});},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,function(){return this;}),define(Gp,"toString",function(){return"[object Generator]";}),exports.keys=function(object){var keys=[];for(var key in object){keys.push(key);}return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next;}return next.done=!0,next;};},exports.values=values,Context.prototype={constructor:Context,reset:function reset(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=undefined,this.done=!1,this.delegate=null,this.method="next",this.arg=undefined,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this){"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=undefined);}},stop:function stop(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval;},dispatchException:function dispatchException(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=undefined),!!caught;}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break;}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record);},complete:function complete(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel;},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel;}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel;}},exports;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e14){throw _e14;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e15){didErr=true;err=_e15;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};}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;}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){_defineProperty(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;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _get(){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get.bind();}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(arguments.length<3?target:receiver);}return desc.value;};}return _get.apply(this,arguments);}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break;}return object;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _awaitAsyncGenerator(value){return new _AwaitValue(value);}function _wrapAsyncGenerator(fn){return function(){return new _AsyncGenerator(fn.apply(this,arguments));};}function _AsyncGenerator(gen){var front,back;function send(key,arg){return new Promise(function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};if(back){back=back.next=request;}else{front=back=request;resume(key,arg);}});}function resume(key,arg){try{var result=gen[key](arg);var value=result.value;var wrappedAwait=value instanceof _AwaitValue;Promise.resolve(wrappedAwait?value.wrapped:value).then(function(arg){if(wrappedAwait){resume(key==="return"?"return":"next",arg);return;}settle(result.done?"return":"normal",arg);},function(err){resume("throw",err);});}catch(err){settle("throw",err);}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:true});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:false});break;}front=front.next;if(front){resume(front.key,front.arg);}else{back=null;}}this._invoke=send;if(typeof gen["return"]!=="function"){this["return"]=undefined;}}_AsyncGenerator.prototype[typeof Symbol==="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this;};_AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg);};_AsyncGenerator.prototype["throw"]=function(arg){return this._invoke("throw",arg);};_AsyncGenerator.prototype["return"]=function(arg){return this._invoke("return",arg);};function _AwaitValue(value){this.wrapped=value;}function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator";}throw new TypeError("Object is not async iterable");}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done};});}return AsyncFromSyncIterator=function AsyncFromSyncIterator(s){this.s=s,this.n=s.next;},AsyncFromSyncIterator.prototype={s:null,n:null,next:function next(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments));},"return":function _return(value){var ret=this.s["return"];return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments));},"throw":function _throw(value){var thr=this.s["return"];return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments));}},new AsyncFromSyncIterator(s);}if(typeof window!=='undefined'){window.__XEOKIT__={version:'2.6.107',commit:'a1558d52a694d6b8435eb85661f0d13b0a1a6fea',built:'2026-03-12T09:08:30.647Z'};}/** @private */var Map$1=/*#__PURE__*/function(){function Map$1(items,baseId){_classCallCheck(this,Map$1);this.items=items||[];this._lastUniqueId=(baseId||0)+1;}/**
7
+ var _globalThis$loaders3,_DRACO_EXTERNAL_LIBRA,_DEFAULT_SAMPLER_PARA;var _marked=/*#__PURE__*/_regeneratorRuntime().mark(makeStringIterator),_marked2=/*#__PURE__*/_regeneratorRuntime().mark(makeArrayBufferIterator),_marked3=/*#__PURE__*/_regeneratorRuntime().mark(makeMeshPrimitiveIterator);function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct.bind();}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};}return _construct.apply(null,arguments);}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return exports;};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key];}try{define({},"");}catch(err){define=function define(obj,key,value){return obj[key]=value;};}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=function(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult();}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult;}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg);}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done};}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg);}};}(innerFn,self,context),generator;}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)};}catch(err){return{type:"throw",arg:err};}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,function(){return this;});var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){define(prototype,method,function(arg){return this._invoke(method,arg);});});}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==_typeof(value)&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject);},function(err){invoke("throw",err,resolve,reject);}):PromiseImpl.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result);},function(error){return invoke("throw",error,resolve,reject);});}reject(record.arg);}var previousPromise;this._invoke=function(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl(function(resolve,reject){invoke(method,arg,resolve,reject);});}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();};}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(undefined===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator["return"]&&(context.method="return",context.arg=undefined,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method");}return ContinueSentinel;}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=undefined),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel);}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry);}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record;}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0);}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;){if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;}return next.value=undefined,next.done=!0,next;};return next.next=next;}}return{next:doneResult};}function doneResult(){return{value:undefined,done:!0};}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(Gp,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name));},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun;},exports.awrap=function(arg){return{__await:arg};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,function(){return this;}),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then(function(result){return result.done?result.value:iter.next();});},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,function(){return this;}),define(Gp,"toString",function(){return"[object Generator]";}),exports.keys=function(object){var keys=[];for(var key in object){keys.push(key);}return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next;}return next.done=!0,next;};},exports.values=values,Context.prototype={constructor:Context,reset:function reset(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=undefined,this.done=!1,this.delegate=null,this.method="next",this.arg=undefined,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this){"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=undefined);}},stop:function stop(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval;},dispatchException:function dispatchException(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=undefined),!!caught;}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break;}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record);},complete:function complete(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel;},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel;}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel;}},exports;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e14){throw _e14;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e15){didErr=true;err=_e15;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};}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;}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){_defineProperty(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;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _get(){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get.bind();}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(arguments.length<3?target:receiver);}return desc.value;};}return _get.apply(this,arguments);}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break;}return object;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _awaitAsyncGenerator(value){return new _AwaitValue(value);}function _wrapAsyncGenerator(fn){return function(){return new _AsyncGenerator(fn.apply(this,arguments));};}function _AsyncGenerator(gen){var front,back;function send(key,arg){return new Promise(function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};if(back){back=back.next=request;}else{front=back=request;resume(key,arg);}});}function resume(key,arg){try{var result=gen[key](arg);var value=result.value;var wrappedAwait=value instanceof _AwaitValue;Promise.resolve(wrappedAwait?value.wrapped:value).then(function(arg){if(wrappedAwait){resume(key==="return"?"return":"next",arg);return;}settle(result.done?"return":"normal",arg);},function(err){resume("throw",err);});}catch(err){settle("throw",err);}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:true});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:false});break;}front=front.next;if(front){resume(front.key,front.arg);}else{back=null;}}this._invoke=send;if(typeof gen["return"]!=="function"){this["return"]=undefined;}}_AsyncGenerator.prototype[typeof Symbol==="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this;};_AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg);};_AsyncGenerator.prototype["throw"]=function(arg){return this._invoke("throw",arg);};_AsyncGenerator.prototype["return"]=function(arg){return this._invoke("return",arg);};function _AwaitValue(value){this.wrapped=value;}function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator";}throw new TypeError("Object is not async iterable");}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done};});}return AsyncFromSyncIterator=function AsyncFromSyncIterator(s){this.s=s,this.n=s.next;},AsyncFromSyncIterator.prototype={s:null,n:null,next:function next(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments));},"return":function _return(value){var ret=this.s["return"];return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments));},"throw":function _throw(value){var thr=this.s["return"];return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments));}},new AsyncFromSyncIterator(s);}if(typeof window!=='undefined'){window.__XEOKIT__={version:'2.6.108',commit:'a2bfb2cb967c8a3925c74e4039bfc60f136128c2',built:'2026-04-03T14:14:43.600Z'};}/** @private */var Map$1=/*#__PURE__*/function(){function Map$1(items,baseId){_classCallCheck(this,Map$1);this.items=items||[];this._lastUniqueId=(baseId||0)+1;}/**
8
8
  * Usage:
9
9
  *
10
10
  * id = myMap.addItem("foo") // ID internally generated
@@ -20052,6 +20052,8 @@ if(metaModelData.propertySets){for(var _i241=0,_len30=metaModelData.propertySets
20052
20052
  * @returns {MetaModel} The new MetaModel.
20053
20053
  */},{key:"createMetaModel",value:function createMetaModel(modelId,metaModelData){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var metaModel=new MetaModel({// Registers MetaModel in #metaModels
20054
20054
  metaScene:this,id:modelId,projectId:metaModelData.projectId||"none",revisionId:metaModelData.revisionId||"none",author:metaModelData.author||"none",createdAt:metaModelData.createdAt||"none",creatingApplication:metaModelData.creatingApplication||"none",schema:metaModelData.schema||"none",propertySets:[]});metaModel.loadData(metaModelData);metaModel.finalize();return metaModel;}/**
20055
+ * Destroys this MetaScene.
20056
+ */},{key:"_destroy",value:function _destroy(){this.viewer=null;this.scene=null;this.metaModels={};this.propertySets={};this.metaObjects={};this.metaObjectsByType={};this.rootMetaObjects={};this._eventSubs={};}/**
20055
20057
  * Removes a {@link MetaModel} from this MetaScene.
20056
20058
  *
20057
20059
  * Fires a "metaModelDestroyed" event with the value of the {@link MetaModel#id}.
@@ -23323,7 +23325,7 @@ for(var _i305=0;_i305<2;++_i305){var denom=p1[_i305]-p0[_i305];var l=(-1-p0[_i30
23323
23325
  var ndcDelta=math.subVec4(p1,p0,tmpVec4c);math.addVec4(p0,math.mulVec4Scalar(ndcDelta,t_max,tmpVec4d),p1);math.addVec4(p0,math.mulVec4Scalar(ndcDelta,t_min,tmpVec4d),p0);math.mulVec4Scalar(p0,1/p0[3]);math.mulVec4Scalar(p1,1/p1[3]);toCanvasSpace(canvas,parentElement,p0,canvasStart);toCanvasSpace(canvas,parentElement,p1,canvasEnd);return true;};var Dot3D=/*#__PURE__*/function(_Marker2){_inherits(Dot3D,_Marker2);var _super66=_createSuper(Dot3D);function Dot3D(scene,markerCfg,parentElement){var _this126;var cfg=arguments.length>3&&arguments[3]!==undefined?arguments[3]:{};_classCallCheck(this,Dot3D);var camera=scene.camera;_this126=_super66.call(this,scene,markerCfg);_this126.__visible=true;// "__" to not interfere with Marker::_visible
23324
23326
  var handler=function handler(cfgEvent,componentEvent){return function(event){if(cfgEvent){cfgEvent(event);}_this126.fire(componentEvent,event,true);};};_this126._dot=new Dot(parentElement,{borderColor:cfg.borderColor,fillColor:cfg.fillColor,zIndex:cfg.zIndex,onMouseOver:handler(cfg.onMouseOver,"mouseover"),onMouseLeave:handler(cfg.onMouseLeave,"mouseleave"),onMouseWheel:handler(cfg.onMouseWheel,"wheel"),onMouseDown:handler(cfg.onMouseDown,"mousedown"),onMouseUp:handler(cfg.onMouseUp,"mouseup"),onMouseMove:handler(cfg.onMouseMove,"mousemove"),onTouchstart:handler(cfg.onTouchstart,"touchstart"),onTouchmove:handler(cfg.onTouchmove,"touchmove"),onTouchend:handler(cfg.onTouchend,"touchend"),onContextMenu:handler(cfg.onContextMenu,"contextmenu")});var toClipSpace=function toClipSpace(worldPos,p){// to homogeneous coords
23325
23327
  p.set(worldPos);p[3]=1;// to clip space
23326
- math.mulMat4v4(camera.viewMatrix,p,p);math.mulMat4v4(camera.projMatrix,p,p);};var toCanvasSpace=function toCanvasSpace(ndc){var canvas=scene.canvas.canvas;ndc[0]=(1+ndc[0])*0.5*canvas.offsetWidth;ndc[1]=(1-ndc[1])*0.5*canvas.offsetHeight;transformToNode(canvas,parentElement,ndc);};var updateDotPos=function updateDotPos(){if(!_this126.__visible){return;}var p0=tmpVec4c;toClipSpace(_this126.worldPos,p0);math.mulVec3Scalar(p0,1.0/p0[3]);var outsideFrustum=p0[3]<0||p0[0]<-1||p0[0]>1||p0[1]<-1||p0[1]>1||p0[2]<-1||p0[2]>1;var culled=outsideFrustum||scene._sectionPlanesState.sectionPlanes.some(function(plane){return math.dotVec3(plane.dir,math.subVec3(plane.pos,_this126.worldPos,tmpVec3a$2))>0;});_this126._dot.setCulled(culled);if(!culled){toCanvasSpace(p0);_this126._dot.setPos(p0[0],p0[1]);}};_this126.on("worldPos",updateDotPos);var onViewMatrix=camera.on("viewMatrix",updateDotPos);var onProjMatrix=camera.on("projMatrix",updateDotPos);var onCanvasBnd=scene.canvas.on("boundary",updateDotPos);var planesUpdate=scene.on("sectionPlaneUpdated",updateDotPos);var planeCreated=scene.on("sectionPlaneCreated",updateDotPos);var planeDestroyed=scene.on("sectionPlaneDestroyed",updateDotPos);_this126._updatePosition=updateDotPos;_this126._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this126._dot.destroy();};return _this126;}_createClass(Dot3D,[{key:"setClickable",value:function setClickable(value){this._dot.setClickable(value);}},{key:"setFillColor",value:function setFillColor(value){this._dot.setFillColor(value);}},{key:"setBorderColor",value:function setBorderColor(value){this._dot.setBorderColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._dot.setHighlighted(value);}},{key:"setOpacity",value:function setOpacity(value){this._dot.setOpacity(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePosition();this._dot.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();_get(_getPrototypeOf(Dot3D.prototype),"destroy",this).call(this);}}]);return Dot3D;}(Marker);var Label3D=/*#__PURE__*/function(){function Label3D(scene,parentElement,cfg){var _this127=this;_classCallCheck(this,Label3D);var camera=scene.camera;this._label=new Label(parentElement,cfg);this._start=math.vec3();this._mid=math.vec3();this._end=math.vec3();this._yOff=0;this.__visible=true;this._updatePos=function(){toClipSpace(camera,_this127._start,tmpVec4a);math.mulVec4Scalar(tmpVec4a,1.0/tmpVec4a[3]);toCanvasSpace(scene.canvas.canvas,parentElement,tmpVec4a,tmpVec2a);_this127._label.setPos(tmpVec2a[0],tmpVec2a[1]);};var setPosOnWire=function setPosOnWire(p0,p1,yOff){p0[0]+=p1[0];p0[1]+=p1[1];math.mulVec2Scalar(p0,.5);_this127._label.setPos(p0[0],p0[1]+yOff);};this._updatePosBetween=function(){var visibleA=clipSegment(scene,parentElement,_this127._start,_this127._mid,tmpVec2a,tmpVec2b);var visibleB=clipSegment(scene,parentElement,_this127._end,_this127._mid,tmpVec2c,tmpVec2d);_this127._label.setCulled(!(visibleA||visibleB));if(visibleA&&visibleB){tmpVec2b[0]+=tmpVec2d[0];tmpVec2b[1]+=tmpVec2d[1];math.mulVec2Scalar(tmpVec2b,.5);tmpVec2b[0]+=tmpVec2a[0]+tmpVec2c[0];tmpVec2b[1]+=tmpVec2a[1]+tmpVec2c[1];math.mulVec2Scalar(tmpVec2b,1/3);_this127._label.setPos(tmpVec2b[0],tmpVec2b[1]);}else if(visibleA){setPosOnWire(tmpVec2a,tmpVec2b,0);}else if(visibleB){setPosOnWire(tmpVec2c,tmpVec2d,0);}};this._updatePosOnWire=function(){var visible=clipSegment(scene,parentElement,_this127._start,_this127._end,tmpVec2a,tmpVec2b)&&math.distVec2(tmpVec2a,tmpVec2b)>=_this127._labelMinAxisLength;_this127._label.setCulled(!visible);if(visible){setPosOnWire(tmpVec2a,tmpVec2b,_this127._yOff);}};var posUpdate=function posUpdate(){};this._setUpdatePositions=function(_posUpdate){posUpdate=_posUpdate;_this127._updatePositions();};this._updatePositions=function(){if(_this127.__visible){posUpdate();}};var onViewMatrix=camera.on("viewMatrix",this._updatePositions);var onProjMatrix=camera.on("projMatrix",this._updatePositions);var onCanvasBnd=scene.canvas.on("boundary",this._updatePositions);var planesUpdate=scene.on("sectionPlaneUpdated",this._updatePositions);var planeCreated=scene.on("sectionPlaneCreated",this._updatePositions);var planeDestroyed=scene.on("sectionPlaneDestroyed",this._updatePositions);this._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this127._label.destroy();};}_createClass(Label3D,[{key:"setPos",value:function setPos(p0){this._start.set(p0);this._setUpdatePositions(this._updatePos);}},{key:"setPosOnWire",value:function setPosOnWire(p0,p1,yOff,labelMinAxisLength){this._start.set(p0);this._end.set(p1);this._yOff=yOff;this._labelMinAxisLength=labelMinAxisLength;this._setUpdatePositions(this._updatePosOnWire);}},{key:"setPosBetween",value:function setPosBetween(p0,p1,p2){this._start.set(p0);this._mid.set(p1);this._end.set(p2);this._setUpdatePositions(this._updatePosBetween);}},{key:"setFillColor",value:function setFillColor(value){this._label.setFillColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._label.setHighlighted(value);}},{key:"setText",value:function setText(value){this._label.setText(value);}},{key:"setClickable",value:function setClickable(value){this._label.setClickable(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePositions();this._label.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();}}]);return Label3D;}();var Wire3D=/*#__PURE__*/function(){function Wire3D(scene,parentElement,cfg){var _this128=this;_classCallCheck(this,Wire3D);var camera=scene.camera;this._wire=new Wire(parentElement,cfg);this._start=math.vec3();this._end=math.vec3();this.__visible=true;this._updatePositions=function(){if(!_this128.__visible){return;}var visible=clipSegment(scene,parentElement,_this128._start,_this128._end,tmpVec2a,tmpVec2b);_this128._wire.setCulled(!visible);if(visible){_this128._wire.setStartAndEnd(tmpVec2a[0],tmpVec2a[1],tmpVec2b[0],tmpVec2b[1]);}};var onViewMatrix=camera.on("viewMatrix",this._updatePositions);var onProjMatrix=camera.on("projMatrix",this._updatePositions);var onCanvasBnd=scene.canvas.on("boundary",this._updatePositions);var planesUpdate=scene.on("sectionPlaneUpdated",this._updatePositions);var planeCreated=scene.on("sectionPlaneCreated",this._updatePositions);var planeDestroyed=scene.on("sectionPlaneDestroyed",this._updatePositions);this._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this128._wire.destroy();};}_createClass(Wire3D,[{key:"setEnds",value:function setEnds(start,end){this._start.set(start);this._end.set(end);this._updatePositions();}},{key:"setClickable",value:function setClickable(value){this._wire.setClickable(value);}},{key:"setColor",value:function setColor(value){this._wire.setColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._wire.setHighlighted(value);}},{key:"setOpacity",value:function setOpacity(value){this._wire.setOpacity(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePositions();this._wire.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();}}]);return Wire3D;}();var marker3D=function marker3D(scene,color){var marker=new Dot3D(scene,{},scene.canvas.canvas.parentNode,{borderColor:"white",fillColor:color,zIndex:100});return{update:function update(worldPos){if(worldPos){marker.worldPos=worldPos;}marker.setVisible(!!worldPos);},setFillColor:function setFillColor(c){return marker.setFillColor(c);},setHighlighted:function setHighlighted(h){return marker.setHighlighted(h);},getCanvasPos:function getCanvasPos(){return marker.canvasPos;},getWorldPos:function getWorldPos(){return marker.worldPos;},destroy:function destroy(){return marker.destroy();}};};var wire3D=function wire3D(scene,color){var wire=new Wire3D(scene,scene.canvas.canvas.ownerDocument.body,{color:color,thickness:1,thicknessClickable:6// TODO: Remove to make not clickable?
23328
+ math.mulMat4v4(camera.viewMatrix,p,p);math.mulMat4v4(camera.projMatrix,p,p);};var toCanvasSpace=function toCanvasSpace(ndc){var canvas=scene.canvas.canvas;ndc[0]=(1+ndc[0])*0.5*canvas.offsetWidth;ndc[1]=(1-ndc[1])*0.5*canvas.offsetHeight;transformToNode(canvas,parentElement,ndc);};var updateDotPos=function updateDotPos(){if(!_this126.__visible){return;}var p0=tmpVec4c;toClipSpace(_this126.worldPos,p0);math.mulVec3Scalar(p0,1.0/p0[3]);var outsideFrustum=p0[3]<0||p0[0]<-1||p0[0]>1||p0[1]<-1||p0[1]>1||p0[2]<-1||p0[2]>1;var culled=outsideFrustum||scene._sectionPlanesState.sectionPlanes.some(function(plane){return math.dotVec3(plane.dir,math.subVec3(plane.pos,_this126.worldPos,tmpVec3a$2))>0;});_this126._dot.setCulled(culled);if(!culled){toCanvasSpace(p0);_this126._dot.setPos(p0[0],p0[1]);}};_this126.on("worldPos",updateDotPos);var onViewMatrix=camera.on("viewMatrix",updateDotPos);var onProjMatrix=camera.on("projMatrix",updateDotPos);var onCanvasBnd=scene.canvas.on("boundary",updateDotPos);var planesUpdate=scene.on("sectionPlaneUpdated",updateDotPos);var planeCreated=scene.on("sectionPlaneCreated",updateDotPos);var planeDestroyed=scene.on("sectionPlaneDestroyed",updateDotPos);_this126._updatePosition=updateDotPos;_this126._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this126._dot.destroy();};return _this126;}_createClass(Dot3D,[{key:"setClickable",value:function setClickable(value){this._dot.setClickable(value);}},{key:"setFillColor",value:function setFillColor(value){this._dot.setFillColor(value);}},{key:"setBorderColor",value:function setBorderColor(value){this._dot.setBorderColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._dot.setHighlighted(value);}},{key:"setOpacity",value:function setOpacity(value){this._dot.setOpacity(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePosition();this._dot.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();_get(_getPrototypeOf(Dot3D.prototype),"destroy",this).call(this);}}]);return Dot3D;}(Marker);var Label3D=/*#__PURE__*/function(){function Label3D(scene,parentElement,cfg){var _this127=this;_classCallCheck(this,Label3D);var camera=scene.camera;this._label=new Label(parentElement,cfg);this._start=math.vec3();this._mid=math.vec3();this._end=math.vec3();this._yOff=0;this.__visible=true;this._updatePos=function(){var p0=tmpVec4a;toClipSpace(camera,_this127._start,p0);math.mulVec3Scalar(p0,1.0/p0[3]);var outsideFrustum=p0[3]<0||p0[0]<-1||p0[0]>1||p0[1]<-1||p0[1]>1||p0[2]<-1||p0[2]>1;var culled=outsideFrustum||scene._sectionPlanesState.sectionPlanes.some(function(plane){return plane.active&&math.dotVec3(plane.dir,math.subVec3(plane.pos,_this127._start,tmpVec3a$2))>0;});_this127._label.setCulled(culled);if(!culled){toCanvasSpace(scene.canvas.canvas,parentElement,p0,tmpVec2a);_this127._label.setPos(tmpVec2a[0],tmpVec2a[1]);}};var setPosOnWire=function setPosOnWire(p0,p1,yOff){p0[0]+=p1[0];p0[1]+=p1[1];math.mulVec2Scalar(p0,.5);_this127._label.setPos(p0[0],p0[1]+yOff);};this._updatePosBetween=function(){var visibleA=clipSegment(scene,parentElement,_this127._start,_this127._mid,tmpVec2a,tmpVec2b);var visibleB=clipSegment(scene,parentElement,_this127._end,_this127._mid,tmpVec2c,tmpVec2d);_this127._label.setCulled(!(visibleA||visibleB));if(visibleA&&visibleB){tmpVec2b[0]+=tmpVec2d[0];tmpVec2b[1]+=tmpVec2d[1];math.mulVec2Scalar(tmpVec2b,.5);tmpVec2b[0]+=tmpVec2a[0]+tmpVec2c[0];tmpVec2b[1]+=tmpVec2a[1]+tmpVec2c[1];math.mulVec2Scalar(tmpVec2b,1/3);_this127._label.setPos(tmpVec2b[0],tmpVec2b[1]);}else if(visibleA){setPosOnWire(tmpVec2a,tmpVec2b,0);}else if(visibleB){setPosOnWire(tmpVec2c,tmpVec2d,0);}};this._updatePosOnWire=function(){var visible=clipSegment(scene,parentElement,_this127._start,_this127._end,tmpVec2a,tmpVec2b)&&math.distVec2(tmpVec2a,tmpVec2b)>=_this127._labelMinAxisLength;_this127._label.setCulled(!visible);if(visible){setPosOnWire(tmpVec2a,tmpVec2b,_this127._yOff);}};var posUpdate=function posUpdate(){};this._setUpdatePositions=function(_posUpdate){posUpdate=_posUpdate;_this127._updatePositions();};this._updatePositions=function(){if(_this127.__visible){posUpdate();}};var onViewMatrix=camera.on("viewMatrix",this._updatePositions);var onProjMatrix=camera.on("projMatrix",this._updatePositions);var onCanvasBnd=scene.canvas.on("boundary",this._updatePositions);var planesUpdate=scene.on("sectionPlaneUpdated",this._updatePositions);var planeCreated=scene.on("sectionPlaneCreated",this._updatePositions);var planeDestroyed=scene.on("sectionPlaneDestroyed",this._updatePositions);this._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this127._label.destroy();};}_createClass(Label3D,[{key:"setPos",value:function setPos(p0){this._start.set(p0);this._setUpdatePositions(this._updatePos);}},{key:"setPosOnWire",value:function setPosOnWire(p0,p1,yOff,labelMinAxisLength){this._start.set(p0);this._end.set(p1);this._yOff=yOff;this._labelMinAxisLength=labelMinAxisLength;this._setUpdatePositions(this._updatePosOnWire);}},{key:"setPosBetween",value:function setPosBetween(p0,p1,p2){this._start.set(p0);this._mid.set(p1);this._end.set(p2);this._setUpdatePositions(this._updatePosBetween);}},{key:"setFillColor",value:function setFillColor(value){this._label.setFillColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._label.setHighlighted(value);}},{key:"setText",value:function setText(value){this._label.setText(value);}},{key:"setClickable",value:function setClickable(value){this._label.setClickable(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePositions();this._label.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();}}]);return Label3D;}();var Wire3D=/*#__PURE__*/function(){function Wire3D(scene,parentElement,cfg){var _this128=this;_classCallCheck(this,Wire3D);var camera=scene.camera;this._wire=new Wire(parentElement,cfg);this._start=math.vec3();this._end=math.vec3();this.__visible=true;this._updatePositions=function(){if(!_this128.__visible){return;}var visible=clipSegment(scene,parentElement,_this128._start,_this128._end,tmpVec2a,tmpVec2b);_this128._wire.setCulled(!visible);if(visible){_this128._wire.setStartAndEnd(tmpVec2a[0],tmpVec2a[1],tmpVec2b[0],tmpVec2b[1]);}};var onViewMatrix=camera.on("viewMatrix",this._updatePositions);var onProjMatrix=camera.on("projMatrix",this._updatePositions);var onCanvasBnd=scene.canvas.on("boundary",this._updatePositions);var planesUpdate=scene.on("sectionPlaneUpdated",this._updatePositions);var planeCreated=scene.on("sectionPlaneCreated",this._updatePositions);var planeDestroyed=scene.on("sectionPlaneDestroyed",this._updatePositions);this._cleanup=function(){camera.off(onViewMatrix);camera.off(onProjMatrix);scene.canvas.off(onCanvasBnd);scene.off(planesUpdate);scene.off(planeCreated);scene.off(planeDestroyed);_this128._wire.destroy();};}_createClass(Wire3D,[{key:"setEnds",value:function setEnds(start,end){this._start.set(start);this._end.set(end);this._updatePositions();}},{key:"setClickable",value:function setClickable(value){this._wire.setClickable(value);}},{key:"setColor",value:function setColor(value){this._wire.setColor(value);}},{key:"setHighlighted",value:function setHighlighted(value){this._wire.setHighlighted(value);}},{key:"setOpacity",value:function setOpacity(value){this._wire.setOpacity(value);}},{key:"setVisible",value:function setVisible(value){if(this.__visible!=value){this.__visible=value;this._updatePositions();this._wire.setVisible(value);}}},{key:"destroy",value:function destroy(){this._cleanup();}}]);return Wire3D;}();var marker3D=function marker3D(scene,color){var marker=new Dot3D(scene,{},scene.canvas.canvas.parentNode,{borderColor:"white",fillColor:color,zIndex:100});return{update:function update(worldPos){if(worldPos){marker.worldPos=worldPos;}marker.setVisible(!!worldPos);},setFillColor:function setFillColor(c){return marker.setFillColor(c);},setHighlighted:function setHighlighted(h){return marker.setHighlighted(h);},getCanvasPos:function getCanvasPos(){return marker.canvasPos;},getWorldPos:function getWorldPos(){return marker.worldPos;},destroy:function destroy(){return marker.destroy();}};};var wire3D=function wire3D(scene,color){var wire=new Wire3D(scene,scene.canvas.canvas.ownerDocument.body,{color:color,thickness:1,thicknessClickable:6// TODO: Remove to make not clickable?
23327
23329
  });wire.setVisible(false);return{update:function update(startWorldPos,endWorldPos){if(endWorldPos){wire.setEnds(startWorldPos,endWorldPos);}wire.setVisible(!!endWorldPos);},setColor:function setColor(c){return wire.setColor(c);},destroy:function destroy(){return wire.destroy();}};};function activateDraggableDot(dot,cfg){var extractCFG=function extractCFG(propName,defaultValue){if(propName in cfg){return cfg[propName];}else if(defaultValue!==undefined){return defaultValue;}else{throw"config missing: "+propName;}};var viewer=extractCFG("viewer");var ray2WorldPos=extractCFG("ray2WorldPos");var handleMouseEvents=extractCFG("handleMouseEvents",false);var handleTouchEvents=extractCFG("handleTouchEvents",false);var onStart=extractCFG("onStart",nop);var onMove=extractCFG("onMove",nop);var onEnd=extractCFG("onEnd",nop);var scene=viewer.scene;var canvas=scene.canvas.canvas;var pickWorldPos=function pickWorldPos(canvasPos){var origin=math.vec3();var direction=math.vec3();math.canvasPosToWorldRay(canvas,scene.camera.viewMatrix,scene.camera.projMatrix,scene.camera.projection,canvasPos,origin,direction);return ray2WorldPos(origin,direction,canvasPos);};var onChange=function onChange(event){var canvasPos=math.vec2([event.clientX,event.clientY]);transformToNode(canvas.ownerDocument.documentElement,canvas,canvasPos);onMove(canvasPos,pickWorldPos(canvasPos));};var currentDrag=null;var onDragMove=function onDragMove(event){var e=currentDrag.matchesEvent(event);if(e){onChange(e);}};var onDragEnd=function onDragEnd(event){var e=currentDrag.matchesEvent(event);if(e){dot.setOpacity(idleOpacity);currentDrag.cleanup();onChange(e);onEnd();}};var startDrag=function startDrag(matchesEvent,cleanupHandlers){if(currentDrag){currentDrag.cleanup();}dot.setOpacity(1.0);dot.setClickable(false);viewer.cameraControl.active=false;currentDrag={matchesEvent:matchesEvent,cleanup:function cleanup(){currentDrag=null;dot.setClickable(true);viewer.cameraControl.active=true;cleanupHandlers();}};onStart();};var cleanupDotHandlers=[];var dot_on=function dot_on(event,callback){var id=dot.on(event,callback);cleanupDotHandlers.push(function(){return dot.off(id);});};if(handleMouseEvents){dot_on("mouseover",function(){return!currentDrag&&dot.setOpacity(1.0);});dot_on("mouseleave",function(){return!currentDrag&&dot.setOpacity(idleOpacity);});dot_on("mousedown",function(event){if(event.which===1){canvas.addEventListener("mousemove",onDragMove);canvas.addEventListener("mouseup",onDragEnd);startDrag(function(event){return event.which===1&&event;},function(){canvas.removeEventListener("mousemove",onDragMove);canvas.removeEventListener("mouseup",onDragEnd);});}});}if(handleTouchEvents){var touchStartId;dot_on("touchstart",function(event){event.preventDefault();if(event.touches.length===1){touchStartId=event.touches[0].identifier;startDrag(function(event){return _toConsumableArray(event.changedTouches).find(function(e){return e.identifier===touchStartId;});},function(){touchStartId=null;});}});dot_on("touchmove",function(event){event.preventDefault();onDragMove(event);});dot_on("touchend",function(event){event.preventDefault();onDragEnd(event);});}var idleOpacity=0.8;dot.setOpacity(idleOpacity);return function(){currentDrag&&currentDrag.cleanup();cleanupDotHandlers.forEach(function(c){return c();});dot.setOpacity(1.0);};}function activateDraggableDots(cfg){var extractCFG=function extractCFG(propName,defaultValue){if(propName in cfg){return cfg[propName];}else if(defaultValue!==undefined){return defaultValue;}else{throw"config missing: "+propName;}};var viewer=extractCFG("viewer");var handleMouseEvents=extractCFG("handleMouseEvents",false);var handleTouchEvents=extractCFG("handleTouchEvents",false);var pointerLens=extractCFG("pointerLens",null);var dots=extractCFG("dots");var _ray2WorldPos=extractCFG("ray2WorldPos");var _onEnd=extractCFG("onEnd",nop);var updatePointerLens=pointerLens?function(canvasPos){pointerLens.visible=!!canvasPos;if(canvasPos){pointerLens.canvasPos=canvasPos;}}:function(){};var cleanups=dots.map(function(dot){var initPos;return activateDraggableDot(dot,{handleMouseEvents:handleMouseEvents,handleTouchEvents:handleTouchEvents,viewer:viewer,ray2WorldPos:function ray2WorldPos(orig,dir,canvasPos){return _ray2WorldPos(orig,dir,canvasPos)||initPos;},onStart:function onStart(){initPos=dot.worldPos.slice();setOtherDotsActive(false,dot);},onMove:function onMove(canvasPos,worldPos){updatePointerLens(canvasPos);dot.worldPos=worldPos;},onEnd:function onEnd(){if(!_onEnd(initPos,dot)){dot.worldPos=initPos;}updatePointerLens(null);setOtherDotsActive(true,dot);}});});var setOtherDotsActive=function setOtherDotsActive(active,dot){return dots.forEach(function(d){return d!==dot&&d.setClickable(active);});};setOtherDotsActive(true);return function(){cleanups.forEach(function(c){return c();});updatePointerLens(null);};}var touchPointSelector=function touchPointSelector(viewer,pointerCircle,ray2WorldPos){return function(onCancel,onChange,onCommit){var scene=viewer.scene;var canvas=scene.canvas.canvas;var longTouchTimeoutMs=300;var moveTolerance=20;var copyCanvasPos=function copyCanvasPos(event,vec2){vec2[0]=event.clientX;vec2[1]=event.clientY;transformToNode(canvas.ownerDocument.documentElement,canvas,vec2);return vec2;};var pickWorldPos=function pickWorldPos(canvasPos){var origin=math.vec3();var direction=math.vec3();math.canvasPosToWorldRay(canvas,scene.camera.viewMatrix,scene.camera.projMatrix,scene.camera.projection,canvasPos,origin,direction);return ray2WorldPos(origin,direction);};var longTouchTimeout=null;var nop=function nop(){};var onSingleTouchMove=nop;var startTouchIdentifier;var resetAction=function resetAction(){pointerCircle.stop();clearTimeout(longTouchTimeout);viewer.cameraControl.active=true;onSingleTouchMove=nop;startTouchIdentifier=null;};var cleanup=function cleanup(){resetAction();canvas.removeEventListener("touchstart",onCanvasTouchStart);canvas.removeEventListener("touchmove",onCanvasTouchMove);canvas.removeEventListener("touchend",onCanvasTouchEnd);};var onCanvasTouchStart=function onCanvasTouchStart(event){var touches=event.touches;if(touches.length!==1){resetAction();onCancel();}else{var startTouch=touches[0];var startCanvasPos=copyCanvasPos(startTouch,math.vec2());var startWorldPos=pickWorldPos(startCanvasPos);if(startWorldPos){startTouchIdentifier=startTouch.identifier;onSingleTouchMove=function onSingleTouchMove(canvasPos){if(math.distVec2(startCanvasPos,canvasPos)>moveTolerance){resetAction();}};longTouchTimeout=setTimeout(function(){pointerCircle.start(startCanvasPos);longTouchTimeout=setTimeout(function(){pointerCircle.stop();viewer.cameraControl.active=false;onSingleTouchMove=function onSingleTouchMove(canvasPos){onChange(canvasPos,pickWorldPos(canvasPos));};onSingleTouchMove(startCanvasPos);},longTouchTimeoutMs);},250);}}};canvas.addEventListener("touchstart",onCanvasTouchStart,{passive:true});// canvas.addEventListener("touchcancel", e => console.log("touchcancel", e), {passive: true});
23328
23330
  var onCanvasTouchMove=function onCanvasTouchMove(event){var touch=_toConsumableArray(event.changedTouches).find(function(e){return e.identifier===startTouchIdentifier;});if(touch){onSingleTouchMove(copyCanvasPos(touch,math.vec2()));}};canvas.addEventListener("touchmove",onCanvasTouchMove,{passive:true});var onCanvasTouchEnd=function onCanvasTouchEnd(event){var touch=_toConsumableArray(event.changedTouches).find(function(e){return e.identifier===startTouchIdentifier;});if(touch){cleanup();var _canvasPos=copyCanvasPos(touch,math.vec2());onCommit(_canvasPos,pickWorldPos(_canvasPos));}};canvas.addEventListener("touchend",onCanvasTouchEnd,{passive:true});return cleanup;};};var triangulateEarClipping=function triangulateEarClipping(planeCoords){var polygonVertices=[];for(var _i306=0;_i306<planeCoords.length;++_i306){polygonVertices.push(_i306);}var isCCW=function(){var ba=math.vec2();var bc=math.vec2();var anglesSum=0;for(var _i307=0;_i307<polygonVertices.length;++_i307){var _a7=planeCoords[polygonVertices[_i307]];var b=planeCoords[polygonVertices[(_i307+1)%polygonVertices.length]];var c=planeCoords[polygonVertices[(_i307+2)%polygonVertices.length]];math.subVec2(_a7,b,ba);math.subVec2(c,b,bc);var theta=math.dotVec2(ba,bc)/Math.sqrt(math.sqLenVec2(ba)*math.sqLenVec2(bc));var _angle2=Math.acos(Math.max(-1,Math.min(theta,1)));var convex=ba[0]*bc[1]-ba[1]*bc[0]>=0;anglesSum+=convex?_angle2:2*Math.PI-_angle2;}return anglesSum<polygonVertices.length*Math.PI;}();var pointInTriangle=function(){var sign=function sign(p1,p2,p3){return(p1[0]-p3[0])*(p2[1]-p3[1])-(p2[0]-p3[0])*(p1[1]-p3[1]);};return function(pt,v1,v2,v3){var d1=sign(pt,v1,v2);var d2=sign(pt,v2,v3);var d3=sign(pt,v3,v1);var has_neg=d1<0||d2<0||d3<0;var has_pos=d1>0||d2>0||d3>0;return!(has_neg&&has_pos);};}();var baseTriangles=[];var vertices=(isCCW?polygonVertices:polygonVertices.slice(0).reverse()).map(function(i){return{idx:i};});vertices.forEach(function(v,i){v.prev=vertices[(i-1+vertices.length)%vertices.length];v.next=vertices[(i+1)%vertices.length];});var ba=math.vec2();var bc=math.vec2();while(vertices.length>2){var earIdx=0;var _loop14=function _loop14(){if(earIdx>=vertices.length){throw"isCCW = ".concat(isCCW,"; earIdx = ").concat(earIdx,"; len = ").concat(vertices.length);}var v=vertices[earIdx];var a=planeCoords[v.prev.idx];var b=planeCoords[v.idx];var c=planeCoords[v.next.idx];math.subVec2(a,b,ba);math.subVec2(c,b,bc);if(ba[0]*bc[1]-ba[1]*bc[0]>=0// a convex vertex
23329
23331
  &&vertices.every(// no other vertices inside
@@ -23557,7 +23559,7 @@ snapshotCanvas.getContext("2d").resetTransform();case 15:_i313++;_context11.next
23557
23559
  *
23558
23560
  */},{key:"endSnapshot",value:function endSnapshot(){if(this._snapshotBegun){this.scene._renderer.snapshot.endSnapshot();this._snapshotBegun=false;}}/** Destroys this Viewer.
23559
23561
  */},{key:"destroy",value:function destroy(){var plugins=this._plugins.slice();// Array will modify as we delete plugins
23560
- for(var _i314=0,len=plugins.length;_i314<len;_i314++){var plugin=plugins[_i314];plugin.destroy();}this.scene.destroy();}}]);return Viewer;}();/**
23562
+ for(var _i314=0,len=plugins.length;_i314<len;_i314++){var plugin=plugins[_i314];plugin.destroy();}this.metaScene._destroy();this.scene.destroy();}}]);return Viewer;}();/**
23561
23563
  * @param {Component} scene
23562
23564
  * @param {*} [cfg] Texture configuration
23563
23565
  * @param {String[]} [cfg.src=null] Path to 6 images