@planara/core 3.2.1 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hub/benchmark-hub.d.ts +2 -1
- package/dist/hub/benchmark-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +662 -658
- package/dist/index.full.d.ts +2 -1
- package/dist/index.public.d.ts +2 -1
- package/dist/index.umd.js +1 -1
- package/dist/store/metrics-store.d.ts +2 -2
- package/dist/store/metrics-store.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.full.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export declare class BenchmarkHub implements Disposable_2 {
|
|
|
43
43
|
* @public
|
|
44
44
|
* @method
|
|
45
45
|
*/
|
|
46
|
-
run(config: BenchmarkConfig): BenchmarkRunResult
|
|
46
|
+
run(config: BenchmarkConfig): Promise<BenchmarkRunResult>;
|
|
47
47
|
/**
|
|
48
48
|
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
49
49
|
*
|
|
@@ -75,6 +75,7 @@ export declare class BenchmarkHub implements Disposable_2 {
|
|
|
75
75
|
*/
|
|
76
76
|
stop(): void;
|
|
77
77
|
dispose(): Promise<void> | void;
|
|
78
|
+
private _wait;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
/**
|
package/dist/index.public.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export declare class BenchmarkHub implements Disposable_2 {
|
|
|
43
43
|
* @public
|
|
44
44
|
* @method
|
|
45
45
|
*/
|
|
46
|
-
run(config: BenchmarkConfig): BenchmarkRunResult
|
|
46
|
+
run(config: BenchmarkConfig): Promise<BenchmarkRunResult>;
|
|
47
47
|
/**
|
|
48
48
|
* Возвращает отчет по успешно выполненным benchmark-тестам.
|
|
49
49
|
*
|
|
@@ -75,6 +75,7 @@ export declare class BenchmarkHub implements Disposable_2 {
|
|
|
75
75
|
*/
|
|
76
76
|
stop(): void;
|
|
77
77
|
dispose(): Promise<void> | void;
|
|
78
|
+
private _wait;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
/**
|
package/dist/index.umd.js
CHANGED
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
`;s+=v}function g(_){let v=0;const M=_.geometry,y=M.getAttribute("position"),j=M.getAttribute("color");if(r+="o "+_.name+`
|
|
18
18
|
`,y!==void 0){for(let x=0,S=y.count;x<S;x++,v++)o.fromBufferAttribute(y,x),o.applyMatrix4(_.matrixWorld),r+="v "+o.x+" "+o.y+" "+o.z,j!==void 0&&(l.fromBufferAttribute(j,x),b.ColorManagement.workingToColorSpace(l,b.SRGBColorSpace),r+=" "+l.r+" "+l.g+" "+l.b),r+=`
|
|
19
19
|
`;r+="p ";for(let x=1,S=y.count;x<=S;x++)r+=s+x+" ";r+=`
|
|
20
|
-
`}s+=v}return t.traverse(function(_){_.isMesh===!0&&m(_),_.isLine===!0&&f(_),_.isPoints===!0&&g(_)}),r}}var Ks=Object.getOwnPropertyDescriptor,Zs=(e,t,r,s)=>{for(var i=s>1?void 0:s?Ks(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Et=(e,t)=>(r,s)=>t(r,s,e);let ne=class{constructor(e,t){this._api=e,this._exportStore=t}mode=h.SceneMode.Export;handle(){const e=this._api.getScene(),t=gr(e),s=new Ys().parse(t),i=Date.now();this._exportStore.setResult({format:"obj",filename:`scene-${i}.obj`,mimeType:"text/plain;charset=utf-8",content:s,createdAt:i})}rollback(){}dispose(){this._exportStore.clearResult()}};ne=Zs([a.injectable(),Et(0,a.inject("ISceneApi")),Et(1,a.inject("ExportStore"))],ne);var Js=Object.defineProperty,Qs=Object.getOwnPropertyDescriptor,Vt=(e,t,r,s)=>{for(var i=s>1?void 0:s?Qs(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=(s?o(t,r,i):o(i))||i);return s&&i&&Js(t,r,i),i},Bt=(e,t)=>(r,s)=>t(r,s,e);let W=class{constructor(e,t){this._api=e,this._validator=t}mode=h.SceneMode.Load;handle(e){const t=[...this._api.getMeshes()];this._api.removeMeshes(t);const r=xt(e);this._api.addMeshes(r)}rollback(){}dispose(){}};Vt([It(e=>e._validator)],W.prototype,"handle",1),W=Vt([a.injectable(),Bt(0,a.inject("IMeshApi")),Bt(1,a.inject("ObjValidator"))],W);var ei=Object.defineProperty,ti=Object.getOwnPropertyDescriptor,Ft=(e,t,r,s)=>{for(var i=s>1?void 0:s?ti(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=(s?o(t,r,i):o(i))||i);return s&&i&&ei(t,r,i),i},$t=(e,t)=>(r,s)=>t(r,s,e);let N=class{constructor(e,t){this._api=e,this._validator=t}mode=h.SceneMode.LoadFigure;handle(e){const t=xt(e);this._api.addMeshes(t)}rollback(){}dispose(){}};Ft([It(e=>e._validator)],N.prototype,"handle",1),N=Ft([a.injectable(),$t(0,a.inject("IMeshApi")),$t(1,a.inject("ObjValidator"))],N);class oe{constructor(t,r,s,i){this._sceneApi=t,this._interactionApi=r,this._metricsApi=s,this._store=i}_group=null;_liveTimerId=null;async handle(t){this._interactionApi.setInteractionEnabled(!1),this._prepareScene(),this._metricsApi.start(this.objectsCount),this._startLiveMetrics(),await this._wait(t),this._stopLiveMetrics(),this._metricsApi.stop();const r=this._metricsApi.getMetrics();this._store.setCurrentMetrics(r),this._store.addMetrics(this.mode,r),this._interactionApi.setInteractionEnabled(!0)}rollback(){this._interactionApi.setInteractionEnabled(!0),this._stopLiveMetrics(),this._metricsApi.stop(),this._metricsApi.reset(),this._store.setCurrentMetrics(null),this._group&&(this._sceneApi.removeFromScene(this._group,!0),this._group.clear(),this._group=null)}dispose(){this.rollback()}_prepareScene(){const t=new c.Group;t.name=this.groupName,this.fillGroup(t),this._group=t,this._sceneApi.addToScene(t)}_wait(t){return new Promise(r=>{window.setTimeout(r,t)})}_startLiveMetrics(){this._stopLiveMetrics(),this._liveTimerId=window.setInterval(()=>{this._store.setCurrentMetrics(this._metricsApi.getMetrics())},250)}_stopLiveMetrics(){this._liveTimerId!==null&&(window.clearInterval(this._liveTimerId),this._liveTimerId=null)}}var ri=Object.getOwnPropertyDescriptor,si=(e,t,r,s)=>{for(var i=s>1?void 0:s?ri(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},ae=(e,t)=>(r,s)=>t(r,s,e);let Je=class extends oe{mode=h.BenchmarkTestType.Light;groupName="__LIGHT_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.BoxGeometry(.4,.4,.4),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set(i-r,.2,n-r),e.add(d)}}};Je=si([a.injectable(),ae(0,a.inject("ISceneApi")),ae(1,a.inject("IInteractionApi")),ae(2,a.inject("IMetricsApi")),ae(3,a.inject("MetricsStore"))],Je);var ii=Object.getOwnPropertyDescriptor,ni=(e,t,r,s)=>{for(var i=s>1?void 0:s?ii(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},ce=(e,t)=>(r,s)=>t(r,s,e);let Qe=class extends oe{mode=h.BenchmarkTestType.Medium;groupName="__MEDIUM_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.CylinderGeometry(.18,.18,.45,24),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set((i-r)*.6,.225,(n-r)*.6),e.add(d)}}};Qe=ni([a.injectable(),ce(0,a.inject("ISceneApi")),ce(1,a.inject("IInteractionApi")),ce(2,a.inject("IMetricsApi")),ce(3,a.inject("MetricsStore"))],Qe);var oi=Object.getOwnPropertyDescriptor,ai=(e,t,r,s)=>{for(var i=s>1?void 0:s?oi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},le=(e,t)=>(r,s)=>t(r,s,e);let et=class extends oe{mode=h.BenchmarkTestType.Heavy;groupName="__HEAVY_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.TorusKnotGeometry(.16,.05,64,12),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set((i-r)*.7,.25,(n-r)*.7),e.add(d)}}};et=ai([a.injectable(),le(0,a.inject("ISceneApi")),le(1,a.inject("IInteractionApi")),le(2,a.inject("IMetricsApi")),le(3,a.inject("MetricsStore"))],et);var ci=Object.getOwnPropertyDescriptor,li=(e,t,r,s)=>{for(var i=s>1?void 0:s?ci(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},he=(e,t)=>(r,s)=>t(r,s,e);let tt=class extends oe{mode=h.BenchmarkTestType.Mixed;groupName="__MIXED_BENCHMARK__";objectsCount=gt+vt+bt;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){this._addLightObjects(e,-10),this._addMediumObjects(e,0),this._addHardObjects(e,10)}_addLightObjects(e,t){this._addGrid(e,gt,t,()=>new c.Mesh(new c.BoxGeometry(.3,.3,.3),new c.MeshStandardMaterial))}_addMediumObjects(e,t){this._addGrid(e,vt,t,()=>new c.Mesh(new c.CylinderGeometry(.18,.18,.45,24),new c.MeshStandardMaterial))}_addHardObjects(e,t){this._addGrid(e,bt,t,()=>new c.Mesh(new c.TorusKnotGeometry(.16,.05,64,12),new c.MeshStandardMaterial))}_addGrid(e,t,r,s){const i=Math.ceil(Math.sqrt(t)),n=i/2;for(let o=0;o<t;o+=1){const l=o%i,d=Math.floor(o/i),u=s(o);u.position.set(r+(l-n)*.65,.25,(d-n)*.65),e.add(u)}}};tt=li([a.injectable(),he(0,a.inject("ISceneApi")),he(1,a.inject("IInteractionApi")),he(2,a.inject("IMetricsApi")),he(3,a.inject("MetricsStore"))],tt);var hi=Object.getOwnPropertyDescriptor,di=(e,t,r,s)=>{for(var i=s>1?void 0:s?hi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},U=(e,t)=>(r,s)=>t(r,s,e);w.EditorHub=class{constructor(t,r,s,i,n){this._renderer=t,this._mediator=r,this._store=s,this._exportStore=i,this._worker=n,this.setSelectMode(h.SelectMode.Mesh),this.setToolMode(h.ToolType.Translate)}setDisplayMode(t){return this._mediator.send({type:P.Display,payload:[t]})}setSelectMode(t){return this._mediator.send({type:P.Select,payload:[t]})}setToolMode(t){return this._mediator.send({type:P.Tool,payload:[t]})}addFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.AddFigure,t]})}deleteFigure(){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.DeleteFigure]})}loadFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.LoadFigure,t]})}loadScene(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.Load,t]})}exportScene(){return this._exportStore.clearResult(),{response:this._mediator.send({type:P.Scene,payload:[h.SceneMode.Export]}),result:this._exportStore.getResult()}}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}getSelectionStats(){return this._store.getSelectionStats()}onSelectionStatsChange(t){const r=this._store.onSelectedObjectChange(()=>{t()}),s=this._store.onSelectedTransformChange(()=>{t()});return()=>{r(),s()}}dispose(){this._mediator.dispose(),this._worker.dispose()}},w.EditorHub=di([a.injectable(),U(0,a.inject("Renderer")),U(1,a.inject("IMediator")),U(2,a.inject("EditorStore")),U(3,a.inject("ExportStore")),U(4,a.inject("IWorker"))],w.EditorHub);var ui=Object.getOwnPropertyDescriptor,_i=(e,t,r,s)=>{for(var i=s>1?void 0:s?ui(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},rt=(e,t)=>(r,s)=>t(r,s,e);w.ViewerHub=class{constructor(t,r,s){this._renderer=t,this._mediator=r,this._worker=s}addFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.AddFigure,t]})}loadFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.LoadFigure,t]})}loadScene(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.Load,t]})}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}dispose(){this._mediator.dispose(),this._worker.dispose()}},w.ViewerHub=_i([a.injectable(),rt(0,a.inject("Renderer")),rt(1,a.inject("IMediator")),rt(2,a.inject("IWorker"))],w.ViewerHub);var mi=Object.getOwnPropertyDescriptor,pi=(e,t,r,s)=>{for(var i=s>1?void 0:s?mi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},de=(e,t)=>(r,s)=>t(r,s,e);w.BenchmarkHub=class{constructor(t,r,s,i){this._renderer=t,this._mediator=r,this._store=s,this._worker=i}run(t){this._store.clear();const r=[];for(const s of t.tests){const i=this._mediator.send({type:P.Benchmark,payload:[s,t.durationMs]});r.push({type:s,status:i===null?h.BenchmarkTestStatus.Success:h.BenchmarkTestStatus.Failed})}return{tests:r}}getReport(){return this._store.getReport()}subscribeMetrics(t){return this._store.subscribe(t)}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}dispose(){this._mediator.dispose(),this._worker.dispose(),this._store.clear()}},w.BenchmarkHub=pi([a.injectable(),de(0,a.inject("Renderer")),de(1,a.inject("IMediator")),de(2,a.inject("MetricsStore")),de(3,a.inject("IWorker"))],w.BenchmarkHub);var fi=Object.getOwnPropertyDescriptor,gi=(e,t,r,s)=>{for(var i=s>1?void 0:s?fi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let st=class{_selectMode=h.SelectMode.Mesh;_toolType=h.ToolType.Translate;_displayMode=h.DisplayMode.Plane;_selectedObject=null;_selectedListeners=new Set;_transformListeners=new Set;constructor(){Y.makeAutoObservable(this,{},{autoBind:!0})}getSelectMode(){return this._selectMode}getToolType(){return this._toolType}getDisplayMode(){return this._displayMode}setSelectMode(e){this._selectMode=e}setToolType(e){this._toolType=e}setDisplayMode(e){this._displayMode=e}getSelectedObject(){return this._selectedObject}getSelectionStats(){const e=this._selectedObject;return e?_r(e):null}setSelectedObject(e){if(this._selectedObject!==e){this._selectedObject=e;for(const t of this._selectedListeners)t(this._selectedObject)}}onSelectedObjectChange(e){return this._selectedListeners.add(e),()=>this._selectedListeners.delete(e)}onSelectedTransformChange(e){return this._transformListeners.add(e),()=>this._transformListeners.delete(e)}notifySelectedTransformChange(){for(const e of this._transformListeners)e()}};st=gi([a.injectable()],st);class kt{_result=null;constructor(){Y.makeAutoObservable(this,{_result:Y.observable.ref},{autoBind:!0})}get result(){return this._result}get hasResult(){return this._result!==null}setResult(t){this._result=t}getResult(){return this._result}clearResult(){this._result=null}}var vi=Object.getOwnPropertyDescriptor,bi=(e,t,r,s)=>{for(var i=s>1?void 0:s?vi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let it=class{_createdAt=new Date().toISOString();_metrics=new Map;_currentMetrics=null;_listeners=new Set;constructor(){Y.makeAutoObservable(this,{},{autoBind:!0})}clear(){this._createdAt=new Date().toISOString(),this._metrics.clear(),this.setCurrentMetrics(null)}addMetrics(e,t){this._metrics.set(e,t)}setCurrentMetrics(e){this._currentMetrics=e;for(const t of this._listeners)t(this._currentMetrics)}getCurrentMetrics(){return this._currentMetrics}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}getReport(){const e=[...this._metrics.entries()].map(([t,r])=>({type:t,status:h.BenchmarkTestStatus.Success,metrics:r}));return{createdAt:this._createdAt,tests:e}}};it=bi([a.injectable()],it);class Ht extends Error{constructor(t,r,s,i){super(r),this.type=t,this.code=s,this.meta=i,this.name=this._name}_name="PolicyException"}class ue extends Error{constructor(t,r,s,i){super(r),this.type=t,this.code=s,this.meta=i,this.name=this._name}_name="ValidationException"}var Mi=Object.getOwnPropertyDescriptor,wi=(e,t,r,s)=>{for(var i=s>1?void 0:s?Mi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Si=(e,t)=>(r,s)=>t(r,s,e);let nt=class{constructor(e){this._store=e}check(e){const t=this._store.getSelectMode();if(!h.DEFAULT_TOOL_RULES[t].includes(e))throw new Ht(h.ResponseType.NotAllowed,`Tool ${e} is not allowed`,"TOOL_NOT_ALLOWED")}};nt=wi([a.injectable(),Si(0,a.inject("EditorStore"))],nt);class Ai{constructor(){}validate(t){const r=t.trim();if(!r)throw new ue(h.ResponseType.ValidationError,"File content is empty.","FILE_CONTENT_EMPTY");if(!/^v\s+[-+.\deE]+\s+[-+.\deE]+\s+[-+.\deE]+/m.test(r))throw new ue(h.ResponseType.ValidationError,"OBJ content does not contain vertices.","WRONG_FILE_CONTENT");if(!/^f\s+/m.test(r))throw new ue(h.ResponseType.ValidationError,"OBJ content does not contain faces.","WRONG_FILE_CONTENT")}}var xi=Object.getOwnPropertyDescriptor,ji=(e,t,r,s)=>{for(var i=s>1?void 0:s?xi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let ot=class{handle(e){try{return e()}catch(t){return t instanceof Ht?{type:t.type,message:t.message,code:t.code,blocked:!0}:t instanceof ue?{type:t.type,message:t.message,code:t.code,blocked:!0}:t instanceof Error?{type:h.ResponseType.Error,message:t.message,code:"UNHANDLED_EXCEPTION",blocked:!0}:{type:h.ResponseType.Error,message:"Unknown exception",code:"UNKNOWN_EXCEPTION",blocked:!0}}}};ot=ji([a.injectable()],ot);var yi=Object.getOwnPropertyDescriptor,Ii=(e,t,r,s)=>{for(var i=s>1?void 0:s?yi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Rt=(e,t)=>(r,s)=>t(r,s,e);let at=class{constructor(e,t){this._middlewares=t,this._managers=new Map(e.map(r=>[r.type,r]))}_managers;send(e){const t=this._managers.get(e.type);if(!t)return{type:h.ResponseType.Error,message:`Manager for feature "${String(e.type)}" not found`,code:"MANAGER_NOT_FOUND",blocked:!0};const r=()=>(t.manage(...e.payload),null);return this._middlewares.reduceRight((i,n)=>()=>n.handle(i),r)()}dispose(){this._managers&&this._managers.clear()}};at=Ii([a.injectable(),Rt(0,a.injectAll("IManager")),Rt(1,a.injectAll("IMiddleware"))],at);let _e=null,me=null,pe=null;function ct(){return a.container.createChildContainer()}function Gt(e,t){e.registerInstance("Canvas",t)}function zt(e,t){e.registerInstance("RendererConfig",mr(vr,t))}function lt(e){e.registerSingleton("IWorker",be),e.registerSingleton("Renderer",w.Renderer),e.register("IRenderable",{useToken:"Renderer"}),e.register("IRendererAccess",{useToken:"Renderer"}),e.register("IRendererCameraAccess",{useToken:"Renderer"}),e.register("IRendererDomAccess",{useToken:"Renderer"}),e.register("IRendererSceneAccess",{useToken:"Renderer"})}function Ci(e){lt(e),e.register("IRendererInfoAccess",{useToken:"Renderer"})}function Oi(e){e.registerSingleton("EventBus",w.EventBus)}function Pi(e){e.registerSingleton("ToolPolicy",nt)}function Wt(e){e.registerSingleton("ObjValidator",Ai)}function Nt(e){e.registerSingleton("IMeshApi",we),e.registerSingleton("ICameraApi",je),e.registerSingleton("IDomApi",ye),e.registerSingleton("ISceneApi",Ie)}function Ut(e){Nt(e),e.registerSingleton("IControlsStateApi",Me),e.registerSingleton("IRaycastApi",Se),e.registerSingleton("ITransformApi",Ae),e.registerSingleton("IInteractionApi",xe)}function Ti(e){Nt(e)}function Li(e){Ut(e),e.registerSingleton("IRendererInfoApi",Ce)}function Xt(e){e.registerSingleton("ControlsModule",Q),e.registerSingleton("GizmoModule",Te),e.registerSingleton("RaycastModule",Le),e.registerSingleton("SceneModule",De),e.register("IUpdatableModule",{useToken:"ControlsModule"}),e.register("IRenderableModule",{useToken:"GizmoModule"}),e.register("IRuntimeModule",{useToken:"RaycastModule"}),e.register("IRuntimeModule",{useToken:"SceneModule"}),e.register("IInteractiveModule",{useToken:"ControlsModule"}),e.register("IInteractiveModule",{useToken:"RaycastModule"}),e.register("IInteractiveModule",{useToken:"GizmoModule"})}function Di(e){e.registerSingleton("ControlsModule",Q),e.registerSingleton("SceneModule",Ee),e.register("IUpdatableModule",{useToken:"ControlsModule"}),e.register("IRuntimeModule",{useToken:"SceneModule"}),e.register("IInteractiveModule",{useToken:"ControlsModule"})}function Ei(e){Xt(e),e.registerSingleton("MetricsModule",Ve),e.register("IObserverModule",{useToken:"MetricsModule"}),e.register("IMetricsApi",{useToken:"MetricsModule"})}function Vi(e){e.registerSingleton("IDisplayHandler",Ge)}function Bi(e){e.registerSingleton("ISelectHandler",Ne),e.registerSingleton("ISelectHandler",We),e.registerSingleton("ISelectHandler",ze),e.registerSingleton("ISelectHandler",Ue)}function Fi(e){e.registerSingleton("IToolHandler",Ke),e.registerSingleton("IToolHandler",Ye),e.registerSingleton("IToolHandler",qe)}function $i(e){e.registerSingleton("ISceneHandler",ie),e.registerSingleton("ISceneHandler",Ze),e.registerSingleton("ISceneHandler",ne),e.registerSingleton("ISceneHandler",N),e.registerSingleton("ISceneHandler",W)}function ki(e){e.registerSingleton("ISceneHandler",ie),e.registerSingleton("ISceneHandler",ne),e.registerSingleton("ISceneHandler",N),e.registerSingleton("ISceneHandler",W)}function Hi(e){e.registerSingleton("IBenchmarkHandler",Je),e.registerSingleton("IBenchmarkHandler",Qe),e.registerSingleton("IBenchmarkHandler",et),e.registerSingleton("IBenchmarkHandler",tt)}function Ri(e){e.registerSingleton("DisplayManager",Be),e.register("IDisplayManager",{useToken:"DisplayManager"}),e.register("IManager",{useToken:"DisplayManager"})}function Gi(e){e.registerSingleton("SelectManager",ke),e.register("ISelectManager",{useToken:"SelectManager"}),e.register("IManager",{useToken:"SelectManager"})}function zi(e){e.registerSingleton("ToolManager",ee),e.register("IToolManager",{useToken:"ToolManager"}),e.register("IManager",{useToken:"ToolManager"})}function qt(e){e.registerSingleton("SceneManager",Fe),e.register("ISceneManager",{useToken:"SceneManager"}),e.register("IManager",{useToken:"SceneManager"})}function Wi(e){e.registerSingleton("BenchmarkManager",Re),e.register("IBenchmarkManager",{useToken:"BenchmarkManager"}),e.register("IManager",{useToken:"BenchmarkManager"})}function Ni(e){Ri(e),Gi(e),zi(e),qt(e)}function Ui(e){qt(e)}function Yt(e){e.registerSingleton("IMiddleware",ot),e.registerSingleton("IMediator",at)}function Xi(e){e.registerSingleton("EditorStore",st),e.registerSingleton("ExportStore",kt)}function qi(e){e.registerSingleton("ExportStore",kt)}function Yi(e){e.registerSingleton("MetricsStore",it)}function Ki(e){e.registerSingleton("EditorHub",w.EditorHub)}function Zi(e){e.registerSingleton("ViewerHub",w.ViewerHub)}function Ji(e){e.registerSingleton("BenchmarkHub",w.BenchmarkHub)}function Kt(e,t,r){return Gt(e,t),zt(e,r),Oi(e),lt(e),Pi(e),Wt(e),Ut(e),Xt(e),Vi(e),Bi(e),Fi(e),$i(e),Ni(e),Yt(e),Ki(e),Xi(e),e}function Qi(e,t,r){return Kt(e,t,r),Ci(e),Ei(e),Li(e),Hi(e),Wi(e),Yi(e),Ji(e),e}function en(e,t,r){return Gt(e,t),zt(e,r),lt(e),Wt(e),Ti(e),Di(e),ki(e),Ui(e),Yt(e),Zi(e),qi(e),e}function tn(e,t){return _e||(_e=Kt(ct(),e,t),_e)}function rn(e,t){return me||(me=en(ct(),e,t),me)}function sn(e,t){return pe||(pe=Qi(ct(),e,t),pe)}let T=null;const nn=(e,t)=>(T||(T=tn(e,t)),T.resolve("EditorHub")),on=()=>{if(!T)throw new Error("EditorHub is not initialized. Call createEditorHub(canvas) first.");return T.resolve("EditorHub")},an=(e,t)=>(T||(T=rn(e,t)),T.resolve("ViewerHub")),cn=()=>{if(!T)throw new Error("ViewerHub is not initialized. Call createViewerHub(canvas) first.");return T.resolve("ViewerHub")},ln=(e,t)=>(T||(T=sn(e,t)),T.resolve("BenchmarkHub")),hn=()=>{if(!T)throw new Error("ViewerHub is not initialized. Call createBenchmarkHub(canvas) first.");return T.resolve("BenchmarkHub")};w.EventTopics=B,w.FeatureType=P,w.ObjLoader=wr,w.createBenchmarkHub=ln,w.createEditorHub=nn,w.createViewerHub=an,w.getBenchmarkHub=hn,w.getEditorHub=on,w.getViewerHub=cn,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})}));
|
|
20
|
+
`}s+=v}return t.traverse(function(_){_.isMesh===!0&&m(_),_.isLine===!0&&f(_),_.isPoints===!0&&g(_)}),r}}var Ks=Object.getOwnPropertyDescriptor,Zs=(e,t,r,s)=>{for(var i=s>1?void 0:s?Ks(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Et=(e,t)=>(r,s)=>t(r,s,e);let ne=class{constructor(e,t){this._api=e,this._exportStore=t}mode=h.SceneMode.Export;handle(){const e=this._api.getScene(),t=gr(e),s=new Ys().parse(t),i=Date.now();this._exportStore.setResult({format:"obj",filename:`scene-${i}.obj`,mimeType:"text/plain;charset=utf-8",content:s,createdAt:i})}rollback(){}dispose(){this._exportStore.clearResult()}};ne=Zs([a.injectable(),Et(0,a.inject("ISceneApi")),Et(1,a.inject("ExportStore"))],ne);var Js=Object.defineProperty,Qs=Object.getOwnPropertyDescriptor,Vt=(e,t,r,s)=>{for(var i=s>1?void 0:s?Qs(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=(s?o(t,r,i):o(i))||i);return s&&i&&Js(t,r,i),i},Bt=(e,t)=>(r,s)=>t(r,s,e);let W=class{constructor(e,t){this._api=e,this._validator=t}mode=h.SceneMode.Load;handle(e){const t=[...this._api.getMeshes()];this._api.removeMeshes(t);const r=xt(e);this._api.addMeshes(r)}rollback(){}dispose(){}};Vt([It(e=>e._validator)],W.prototype,"handle",1),W=Vt([a.injectable(),Bt(0,a.inject("IMeshApi")),Bt(1,a.inject("ObjValidator"))],W);var ei=Object.defineProperty,ti=Object.getOwnPropertyDescriptor,Ft=(e,t,r,s)=>{for(var i=s>1?void 0:s?ti(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=(s?o(t,r,i):o(i))||i);return s&&i&&ei(t,r,i),i},$t=(e,t)=>(r,s)=>t(r,s,e);let N=class{constructor(e,t){this._api=e,this._validator=t}mode=h.SceneMode.LoadFigure;handle(e){const t=xt(e);this._api.addMeshes(t)}rollback(){}dispose(){}};Ft([It(e=>e._validator)],N.prototype,"handle",1),N=Ft([a.injectable(),$t(0,a.inject("IMeshApi")),$t(1,a.inject("ObjValidator"))],N);class oe{constructor(t,r,s,i){this._sceneApi=t,this._interactionApi=r,this._metricsApi=s,this._store=i}_group=null;_liveTimerId=null;async handle(t){this._interactionApi.setInteractionEnabled(!1),this._prepareScene(),this._metricsApi.start(this.objectsCount),this._startLiveMetrics(),await this._wait(t),this._stopLiveMetrics(),this._metricsApi.stop();const r=this._metricsApi.getMetrics();this._store.setCurrentMetrics(r),this._store.addMetrics(this.mode,r),this._interactionApi.setInteractionEnabled(!0)}rollback(){this._interactionApi.setInteractionEnabled(!0),this._stopLiveMetrics(),this._metricsApi.stop(),this._metricsApi.reset(),this._store.setCurrentMetrics(null),this._group&&(this._sceneApi.removeFromScene(this._group,!0),this._group.clear(),this._group=null)}dispose(){this.rollback()}_prepareScene(){const t=new c.Group;t.name=this.groupName,this.fillGroup(t),this._group=t,this._sceneApi.addToScene(t)}_wait(t){return new Promise(r=>{window.setTimeout(r,t)})}_startLiveMetrics(){this._stopLiveMetrics(),this._liveTimerId=window.setInterval(()=>{this._store.setCurrentMetrics(this._metricsApi.getMetrics())},250)}_stopLiveMetrics(){this._liveTimerId!==null&&(window.clearInterval(this._liveTimerId),this._liveTimerId=null)}}var ri=Object.getOwnPropertyDescriptor,si=(e,t,r,s)=>{for(var i=s>1?void 0:s?ri(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},ae=(e,t)=>(r,s)=>t(r,s,e);let Je=class extends oe{mode=h.BenchmarkTestType.Light;groupName="__LIGHT_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.BoxGeometry(.4,.4,.4),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set(i-r,.2,n-r),e.add(d)}}};Je=si([a.injectable(),ae(0,a.inject("ISceneApi")),ae(1,a.inject("IInteractionApi")),ae(2,a.inject("IMetricsApi")),ae(3,a.inject("MetricsStore"))],Je);var ii=Object.getOwnPropertyDescriptor,ni=(e,t,r,s)=>{for(var i=s>1?void 0:s?ii(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},ce=(e,t)=>(r,s)=>t(r,s,e);let Qe=class extends oe{mode=h.BenchmarkTestType.Medium;groupName="__MEDIUM_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.CylinderGeometry(.18,.18,.45,24),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set((i-r)*.6,.225,(n-r)*.6),e.add(d)}}};Qe=ni([a.injectable(),ce(0,a.inject("ISceneApi")),ce(1,a.inject("IInteractionApi")),ce(2,a.inject("IMetricsApi")),ce(3,a.inject("MetricsStore"))],Qe);var oi=Object.getOwnPropertyDescriptor,ai=(e,t,r,s)=>{for(var i=s>1?void 0:s?oi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},le=(e,t)=>(r,s)=>t(r,s,e);let et=class extends oe{mode=h.BenchmarkTestType.Heavy;groupName="__HEAVY_BENCHMARK__";objectsCount=ge;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){const t=Math.ceil(Math.sqrt(this.objectsCount)),r=t/2;for(let s=0;s<this.objectsCount;s+=1){const i=s%t,n=Math.floor(s/t),o=new c.TorusKnotGeometry(.16,.05,64,12),l=new c.MeshStandardMaterial,d=new c.Mesh(o,l);d.position.set((i-r)*.7,.25,(n-r)*.7),e.add(d)}}};et=ai([a.injectable(),le(0,a.inject("ISceneApi")),le(1,a.inject("IInteractionApi")),le(2,a.inject("IMetricsApi")),le(3,a.inject("MetricsStore"))],et);var ci=Object.getOwnPropertyDescriptor,li=(e,t,r,s)=>{for(var i=s>1?void 0:s?ci(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},he=(e,t)=>(r,s)=>t(r,s,e);let tt=class extends oe{mode=h.BenchmarkTestType.Mixed;groupName="__MIXED_BENCHMARK__";objectsCount=gt+vt+bt;constructor(e,t,r,s){super(e,t,r,s)}fillGroup(e){this._addLightObjects(e,-10),this._addMediumObjects(e,0),this._addHardObjects(e,10)}_addLightObjects(e,t){this._addGrid(e,gt,t,()=>new c.Mesh(new c.BoxGeometry(.3,.3,.3),new c.MeshStandardMaterial))}_addMediumObjects(e,t){this._addGrid(e,vt,t,()=>new c.Mesh(new c.CylinderGeometry(.18,.18,.45,24),new c.MeshStandardMaterial))}_addHardObjects(e,t){this._addGrid(e,bt,t,()=>new c.Mesh(new c.TorusKnotGeometry(.16,.05,64,12),new c.MeshStandardMaterial))}_addGrid(e,t,r,s){const i=Math.ceil(Math.sqrt(t)),n=i/2;for(let o=0;o<t;o+=1){const l=o%i,d=Math.floor(o/i),u=s(o);u.position.set(r+(l-n)*.65,.25,(d-n)*.65),e.add(u)}}};tt=li([a.injectable(),he(0,a.inject("ISceneApi")),he(1,a.inject("IInteractionApi")),he(2,a.inject("IMetricsApi")),he(3,a.inject("MetricsStore"))],tt);var hi=Object.getOwnPropertyDescriptor,di=(e,t,r,s)=>{for(var i=s>1?void 0:s?hi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},U=(e,t)=>(r,s)=>t(r,s,e);w.EditorHub=class{constructor(t,r,s,i,n){this._renderer=t,this._mediator=r,this._store=s,this._exportStore=i,this._worker=n,this.setSelectMode(h.SelectMode.Mesh),this.setToolMode(h.ToolType.Translate)}setDisplayMode(t){return this._mediator.send({type:P.Display,payload:[t]})}setSelectMode(t){return this._mediator.send({type:P.Select,payload:[t]})}setToolMode(t){return this._mediator.send({type:P.Tool,payload:[t]})}addFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.AddFigure,t]})}deleteFigure(){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.DeleteFigure]})}loadFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.LoadFigure,t]})}loadScene(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.Load,t]})}exportScene(){return this._exportStore.clearResult(),{response:this._mediator.send({type:P.Scene,payload:[h.SceneMode.Export]}),result:this._exportStore.getResult()}}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}getSelectionStats(){return this._store.getSelectionStats()}onSelectionStatsChange(t){const r=this._store.onSelectedObjectChange(()=>{t()}),s=this._store.onSelectedTransformChange(()=>{t()});return()=>{r(),s()}}dispose(){this._mediator.dispose(),this._worker.dispose()}},w.EditorHub=di([a.injectable(),U(0,a.inject("Renderer")),U(1,a.inject("IMediator")),U(2,a.inject("EditorStore")),U(3,a.inject("ExportStore")),U(4,a.inject("IWorker"))],w.EditorHub);var ui=Object.getOwnPropertyDescriptor,_i=(e,t,r,s)=>{for(var i=s>1?void 0:s?ui(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},rt=(e,t)=>(r,s)=>t(r,s,e);w.ViewerHub=class{constructor(t,r,s){this._renderer=t,this._mediator=r,this._worker=s}addFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.AddFigure,t]})}loadFigure(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.LoadFigure,t]})}loadScene(t){return this._mediator.send({type:P.Scene,payload:[h.SceneMode.Load,t]})}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}dispose(){this._mediator.dispose(),this._worker.dispose()}},w.ViewerHub=_i([a.injectable(),rt(0,a.inject("Renderer")),rt(1,a.inject("IMediator")),rt(2,a.inject("IWorker"))],w.ViewerHub);var mi=Object.getOwnPropertyDescriptor,pi=(e,t,r,s)=>{for(var i=s>1?void 0:s?mi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},de=(e,t)=>(r,s)=>t(r,s,e);w.BenchmarkHub=class{constructor(t,r,s,i){this._renderer=t,this._mediator=r,this._store=s,this._worker=i}async run(t){this._store.clear();const r=[];for(const s of t.tests){const i=this._mediator.send({type:P.Benchmark,payload:[s,t.durationMs]});await this._wait(t.durationMs+300),r.push({type:s,status:i===null?h.BenchmarkTestStatus.Success:h.BenchmarkTestStatus.Failed})}return{tests:r}}getReport(){return this._store.getReport()}subscribeMetrics(t){return this._store.subscribe(t)}resizeRenderer(){this._renderer.resize()}start(){this._worker.start()}stop(){this._worker.stop()}dispose(){this._mediator.dispose(),this._worker.dispose(),this._store.clear()}_wait(t){return new Promise(r=>{window.setTimeout(r,t)})}},w.BenchmarkHub=pi([a.injectable(),de(0,a.inject("Renderer")),de(1,a.inject("IMediator")),de(2,a.inject("MetricsStore")),de(3,a.inject("IWorker"))],w.BenchmarkHub);var fi=Object.getOwnPropertyDescriptor,gi=(e,t,r,s)=>{for(var i=s>1?void 0:s?fi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let st=class{_selectMode=h.SelectMode.Mesh;_toolType=h.ToolType.Translate;_displayMode=h.DisplayMode.Plane;_selectedObject=null;_selectedListeners=new Set;_transformListeners=new Set;constructor(){Y.makeAutoObservable(this,{},{autoBind:!0})}getSelectMode(){return this._selectMode}getToolType(){return this._toolType}getDisplayMode(){return this._displayMode}setSelectMode(e){this._selectMode=e}setToolType(e){this._toolType=e}setDisplayMode(e){this._displayMode=e}getSelectedObject(){return this._selectedObject}getSelectionStats(){const e=this._selectedObject;return e?_r(e):null}setSelectedObject(e){if(this._selectedObject!==e){this._selectedObject=e;for(const t of this._selectedListeners)t(this._selectedObject)}}onSelectedObjectChange(e){return this._selectedListeners.add(e),()=>this._selectedListeners.delete(e)}onSelectedTransformChange(e){return this._transformListeners.add(e),()=>this._transformListeners.delete(e)}notifySelectedTransformChange(){for(const e of this._transformListeners)e()}};st=gi([a.injectable()],st);class kt{_result=null;constructor(){Y.makeAutoObservable(this,{_result:Y.observable.ref},{autoBind:!0})}get result(){return this._result}get hasResult(){return this._result!==null}setResult(t){this._result=t}getResult(){return this._result}clearResult(){this._result=null}}var vi=Object.getOwnPropertyDescriptor,bi=(e,t,r,s)=>{for(var i=s>1?void 0:s?vi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let it=class{_createdAt=new Date().toISOString();_tests=[];_currentMetrics=null;_listeners=new Set;constructor(){Y.makeAutoObservable(this,{},{autoBind:!0})}clear(){this._createdAt=new Date().toISOString(),this._tests=[],this.setCurrentMetrics(null)}addMetrics(e,t){this._tests.push({type:e,status:h.BenchmarkTestStatus.Success,metrics:t})}setCurrentMetrics(e){this._currentMetrics=e;for(const t of this._listeners)t(this._currentMetrics)}getCurrentMetrics(){return this._currentMetrics}subscribe(e){return this._listeners.add(e),()=>{this._listeners.delete(e)}}getReport(){return{createdAt:this._createdAt,tests:[...this._tests]}}};it=bi([a.injectable()],it);class Ht extends Error{constructor(t,r,s,i){super(r),this.type=t,this.code=s,this.meta=i,this.name=this._name}_name="PolicyException"}class ue extends Error{constructor(t,r,s,i){super(r),this.type=t,this.code=s,this.meta=i,this.name=this._name}_name="ValidationException"}var Mi=Object.getOwnPropertyDescriptor,wi=(e,t,r,s)=>{for(var i=s>1?void 0:s?Mi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Si=(e,t)=>(r,s)=>t(r,s,e);let nt=class{constructor(e){this._store=e}check(e){const t=this._store.getSelectMode();if(!h.DEFAULT_TOOL_RULES[t].includes(e))throw new Ht(h.ResponseType.NotAllowed,`Tool ${e} is not allowed`,"TOOL_NOT_ALLOWED")}};nt=wi([a.injectable(),Si(0,a.inject("EditorStore"))],nt);class Ai{constructor(){}validate(t){const r=t.trim();if(!r)throw new ue(h.ResponseType.ValidationError,"File content is empty.","FILE_CONTENT_EMPTY");if(!/^v\s+[-+.\deE]+\s+[-+.\deE]+\s+[-+.\deE]+/m.test(r))throw new ue(h.ResponseType.ValidationError,"OBJ content does not contain vertices.","WRONG_FILE_CONTENT");if(!/^f\s+/m.test(r))throw new ue(h.ResponseType.ValidationError,"OBJ content does not contain faces.","WRONG_FILE_CONTENT")}}var xi=Object.getOwnPropertyDescriptor,ji=(e,t,r,s)=>{for(var i=s>1?void 0:s?xi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i};let ot=class{handle(e){try{return e()}catch(t){return t instanceof Ht?{type:t.type,message:t.message,code:t.code,blocked:!0}:t instanceof ue?{type:t.type,message:t.message,code:t.code,blocked:!0}:t instanceof Error?{type:h.ResponseType.Error,message:t.message,code:"UNHANDLED_EXCEPTION",blocked:!0}:{type:h.ResponseType.Error,message:"Unknown exception",code:"UNKNOWN_EXCEPTION",blocked:!0}}}};ot=ji([a.injectable()],ot);var yi=Object.getOwnPropertyDescriptor,Ii=(e,t,r,s)=>{for(var i=s>1?void 0:s?yi(t,r):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(i=o(i)||i);return i},Rt=(e,t)=>(r,s)=>t(r,s,e);let at=class{constructor(e,t){this._middlewares=t,this._managers=new Map(e.map(r=>[r.type,r]))}_managers;send(e){const t=this._managers.get(e.type);if(!t)return{type:h.ResponseType.Error,message:`Manager for feature "${String(e.type)}" not found`,code:"MANAGER_NOT_FOUND",blocked:!0};const r=()=>(t.manage(...e.payload),null);return this._middlewares.reduceRight((i,n)=>()=>n.handle(i),r)()}dispose(){this._managers&&this._managers.clear()}};at=Ii([a.injectable(),Rt(0,a.injectAll("IManager")),Rt(1,a.injectAll("IMiddleware"))],at);let _e=null,me=null,pe=null;function ct(){return a.container.createChildContainer()}function Gt(e,t){e.registerInstance("Canvas",t)}function zt(e,t){e.registerInstance("RendererConfig",mr(vr,t))}function lt(e){e.registerSingleton("IWorker",be),e.registerSingleton("Renderer",w.Renderer),e.register("IRenderable",{useToken:"Renderer"}),e.register("IRendererAccess",{useToken:"Renderer"}),e.register("IRendererCameraAccess",{useToken:"Renderer"}),e.register("IRendererDomAccess",{useToken:"Renderer"}),e.register("IRendererSceneAccess",{useToken:"Renderer"})}function Ci(e){lt(e),e.register("IRendererInfoAccess",{useToken:"Renderer"})}function Oi(e){e.registerSingleton("EventBus",w.EventBus)}function Pi(e){e.registerSingleton("ToolPolicy",nt)}function Wt(e){e.registerSingleton("ObjValidator",Ai)}function Nt(e){e.registerSingleton("IMeshApi",we),e.registerSingleton("ICameraApi",je),e.registerSingleton("IDomApi",ye),e.registerSingleton("ISceneApi",Ie)}function Ut(e){Nt(e),e.registerSingleton("IControlsStateApi",Me),e.registerSingleton("IRaycastApi",Se),e.registerSingleton("ITransformApi",Ae),e.registerSingleton("IInteractionApi",xe)}function Ti(e){Nt(e)}function Li(e){Ut(e),e.registerSingleton("IRendererInfoApi",Ce)}function Xt(e){e.registerSingleton("ControlsModule",Q),e.registerSingleton("GizmoModule",Te),e.registerSingleton("RaycastModule",Le),e.registerSingleton("SceneModule",De),e.register("IUpdatableModule",{useToken:"ControlsModule"}),e.register("IRenderableModule",{useToken:"GizmoModule"}),e.register("IRuntimeModule",{useToken:"RaycastModule"}),e.register("IRuntimeModule",{useToken:"SceneModule"}),e.register("IInteractiveModule",{useToken:"ControlsModule"}),e.register("IInteractiveModule",{useToken:"RaycastModule"}),e.register("IInteractiveModule",{useToken:"GizmoModule"})}function Di(e){e.registerSingleton("ControlsModule",Q),e.registerSingleton("SceneModule",Ee),e.register("IUpdatableModule",{useToken:"ControlsModule"}),e.register("IRuntimeModule",{useToken:"SceneModule"}),e.register("IInteractiveModule",{useToken:"ControlsModule"})}function Ei(e){Xt(e),e.registerSingleton("MetricsModule",Ve),e.register("IObserverModule",{useToken:"MetricsModule"}),e.register("IMetricsApi",{useToken:"MetricsModule"})}function Vi(e){e.registerSingleton("IDisplayHandler",Ge)}function Bi(e){e.registerSingleton("ISelectHandler",Ne),e.registerSingleton("ISelectHandler",We),e.registerSingleton("ISelectHandler",ze),e.registerSingleton("ISelectHandler",Ue)}function Fi(e){e.registerSingleton("IToolHandler",Ke),e.registerSingleton("IToolHandler",Ye),e.registerSingleton("IToolHandler",qe)}function $i(e){e.registerSingleton("ISceneHandler",ie),e.registerSingleton("ISceneHandler",Ze),e.registerSingleton("ISceneHandler",ne),e.registerSingleton("ISceneHandler",N),e.registerSingleton("ISceneHandler",W)}function ki(e){e.registerSingleton("ISceneHandler",ie),e.registerSingleton("ISceneHandler",ne),e.registerSingleton("ISceneHandler",N),e.registerSingleton("ISceneHandler",W)}function Hi(e){e.registerSingleton("IBenchmarkHandler",Je),e.registerSingleton("IBenchmarkHandler",Qe),e.registerSingleton("IBenchmarkHandler",et),e.registerSingleton("IBenchmarkHandler",tt)}function Ri(e){e.registerSingleton("DisplayManager",Be),e.register("IDisplayManager",{useToken:"DisplayManager"}),e.register("IManager",{useToken:"DisplayManager"})}function Gi(e){e.registerSingleton("SelectManager",ke),e.register("ISelectManager",{useToken:"SelectManager"}),e.register("IManager",{useToken:"SelectManager"})}function zi(e){e.registerSingleton("ToolManager",ee),e.register("IToolManager",{useToken:"ToolManager"}),e.register("IManager",{useToken:"ToolManager"})}function qt(e){e.registerSingleton("SceneManager",Fe),e.register("ISceneManager",{useToken:"SceneManager"}),e.register("IManager",{useToken:"SceneManager"})}function Wi(e){e.registerSingleton("BenchmarkManager",Re),e.register("IBenchmarkManager",{useToken:"BenchmarkManager"}),e.register("IManager",{useToken:"BenchmarkManager"})}function Ni(e){Ri(e),Gi(e),zi(e),qt(e)}function Ui(e){qt(e)}function Yt(e){e.registerSingleton("IMiddleware",ot),e.registerSingleton("IMediator",at)}function Xi(e){e.registerSingleton("EditorStore",st),e.registerSingleton("ExportStore",kt)}function qi(e){e.registerSingleton("ExportStore",kt)}function Yi(e){e.registerSingleton("MetricsStore",it)}function Ki(e){e.registerSingleton("EditorHub",w.EditorHub)}function Zi(e){e.registerSingleton("ViewerHub",w.ViewerHub)}function Ji(e){e.registerSingleton("BenchmarkHub",w.BenchmarkHub)}function Kt(e,t,r){return Gt(e,t),zt(e,r),Oi(e),lt(e),Pi(e),Wt(e),Ut(e),Xt(e),Vi(e),Bi(e),Fi(e),$i(e),Ni(e),Yt(e),Ki(e),Xi(e),e}function Qi(e,t,r){return Kt(e,t,r),Ci(e),Ei(e),Li(e),Hi(e),Wi(e),Yi(e),Ji(e),e}function en(e,t,r){return Gt(e,t),zt(e,r),lt(e),Wt(e),Ti(e),Di(e),ki(e),Ui(e),Yt(e),Zi(e),qi(e),e}function tn(e,t){return _e||(_e=Kt(ct(),e,t),_e)}function rn(e,t){return me||(me=en(ct(),e,t),me)}function sn(e,t){return pe||(pe=Qi(ct(),e,t),pe)}let T=null;const nn=(e,t)=>(T||(T=tn(e,t)),T.resolve("EditorHub")),on=()=>{if(!T)throw new Error("EditorHub is not initialized. Call createEditorHub(canvas) first.");return T.resolve("EditorHub")},an=(e,t)=>(T||(T=rn(e,t)),T.resolve("ViewerHub")),cn=()=>{if(!T)throw new Error("ViewerHub is not initialized. Call createViewerHub(canvas) first.");return T.resolve("ViewerHub")},ln=(e,t)=>(T||(T=sn(e,t)),T.resolve("BenchmarkHub")),hn=()=>{if(!T)throw new Error("ViewerHub is not initialized. Call createBenchmarkHub(canvas) first.");return T.resolve("BenchmarkHub")};w.EventTopics=B,w.FeatureType=P,w.ObjLoader=wr,w.createBenchmarkHub=ln,w.createEditorHub=nn,w.createViewerHub=an,w.getBenchmarkHub=hn,w.getEditorHub=on,w.getViewerHub=cn,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -15,8 +15,8 @@ import { IMetricsStore } from '../interfaces/store';
|
|
|
15
15
|
export declare class MetricsStore implements IMetricsStore {
|
|
16
16
|
/** Дата создания текущего отчета. */
|
|
17
17
|
private _createdAt;
|
|
18
|
-
/**
|
|
19
|
-
private
|
|
18
|
+
/** Отчеты успешно выполненных тестов. */
|
|
19
|
+
private _tests;
|
|
20
20
|
/** Текущие live-метрики. */
|
|
21
21
|
private _currentMetrics;
|
|
22
22
|
/** Слушатели обновления live-метрик. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-store.d.ts","sourceRoot":"","sources":["../../src/store/metrics-store.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,qCAAqC;IACrC,OAAO,CAAC,UAAU,CAA4B;IAE9C,
|
|
1
|
+
{"version":3,"file":"metrics-store.d.ts","sourceRoot":"","sources":["../../src/store/metrics-store.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,qCAAqC;IACrC,OAAO,CAAC,UAAU,CAA4B;IAE9C,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAA6B;IAE3C,4BAA4B;IAC5B,OAAO,CAAC,eAAe,CAAiC;IAExD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;;IAMlD,KAAK,IAAI,IAAI;IAMb,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAQpE,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAQzD,iBAAiB,IAAI,gBAAgB,GAAG,IAAI;IAI5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAQhD,SAAS,IAAI,eAAe;CAMpC"}
|