@planara/core 3.2.0 → 3.2.2
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 +3 -1
- package/dist/hub/benchmark-hub.d.ts.map +1 -1
- package/dist/hub/editor-hub.d.ts.map +1 -1
- package/dist/hub/viewer-hub.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +660 -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
|
@@ -27,7 +27,7 @@ import { ToolType } from '@planara/types';
|
|
|
27
27
|
* @public
|
|
28
28
|
* @class
|
|
29
29
|
*/
|
|
30
|
-
export declare class BenchmarkHub {
|
|
30
|
+
export declare class BenchmarkHub implements Disposable_2 {
|
|
31
31
|
private _renderer;
|
|
32
32
|
private readonly _mediator;
|
|
33
33
|
private readonly _store;
|
|
@@ -74,6 +74,7 @@ export declare class BenchmarkHub {
|
|
|
74
74
|
* Останавливает редактор.
|
|
75
75
|
*/
|
|
76
76
|
stop(): void;
|
|
77
|
+
dispose(): Promise<void> | void;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
/**
|
package/dist/index.public.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ import { ToolType } from '@planara/types';
|
|
|
27
27
|
* @public
|
|
28
28
|
* @class
|
|
29
29
|
*/
|
|
30
|
-
export declare class BenchmarkHub {
|
|
30
|
+
export declare class BenchmarkHub implements Disposable_2 {
|
|
31
31
|
private _renderer;
|
|
32
32
|
private readonly _mediator;
|
|
33
33
|
private readonly _store;
|
|
@@ -74,6 +74,7 @@ export declare class BenchmarkHub {
|
|
|
74
74
|
* Останавливает редактор.
|
|
75
75
|
*/
|
|
76
76
|
stop(): void;
|
|
77
|
+
dispose(): Promise<void> | void;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
/**
|
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()}},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()}},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()}},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}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();_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"}
|