@shopware-ag/dive 2.0.1-beta.5 → 2.0.1-beta.7
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/build/{src/modules/asset/exporter/AssetExporter.mjs → chunks/AssetExporter-QnOue3VT.mjs} +21 -21
- package/build/{src/modules/asset/exporter/AssetExporter.cjs → chunks/AssetExporter-TzKB2FHh.cjs} +4 -4
- package/build/chunks/AssetLoader-DCBiLwef.cjs +4 -0
- package/build/{src/modules/asset/loader/AssetLoader.mjs → chunks/AssetLoader-Dqrg0Re8.mjs} +43 -40
- package/build/chunks/FileTypes-Ca8pkRlQ.cjs +30 -0
- package/build/chunks/FileTypes-CpKiTXEY.mjs +1109 -0
- package/build/chunks/MathUtils-CBW56ZuG.cjs +1 -0
- package/build/chunks/MathUtils-CFGjHuVF.mjs +159 -0
- package/build/chunks/OrbitController-D-WNei2f.mjs +940 -0
- package/build/chunks/OrbitController-rMX8EHvJ.cjs +1 -0
- package/build/chunks/PerspectiveCamera-CONx93im.cjs +1 -0
- package/build/chunks/PerspectiveCamera-DUiWJJIj.mjs +38 -0
- package/build/chunks/PovSchema-Co9FznEz.cjs +1 -0
- package/build/chunks/PovSchema-DWWvr_ED.mjs +10 -0
- package/build/chunks/SelectTool-BizqI7_a.cjs +1 -0
- package/build/chunks/{SelectTool-DmuTopJx.mjs → SelectTool-DVFL7BtX.mjs} +30 -25
- package/build/chunks/findInterface-C6mrvf_t.cjs +1 -0
- package/build/chunks/findInterface-DbJ5qzbc.mjs +11 -0
- package/build/chunks/network-error-CHvryg-4.mjs +18 -0
- package/build/chunks/network-error-D_pq8VU6.cjs +1 -0
- package/build/chunks/package-CeZyVg2G.mjs +39 -0
- package/build/chunks/package-D_hIrGNz.cjs +1 -0
- package/build/dive.cjs +1 -30
- package/build/dive.mjs +599 -1540
- package/build/plugins/animation/index.cjs +1 -0
- package/build/plugins/animation/index.d.ts +2 -0
- package/build/plugins/animation/index.mjs +126 -0
- package/build/plugins/ar/index.cjs +1 -0
- package/build/plugins/ar/index.d.ts +2 -0
- package/build/plugins/ar/index.mjs +202 -0
- package/build/plugins/assetconverter/index.d.ts +2 -0
- package/build/plugins/assetexporter/index.cjs +1 -0
- package/build/plugins/assetexporter/index.d.ts +2 -0
- package/build/plugins/assetexporter/index.mjs +4 -0
- package/build/plugins/assetloader/index.cjs +1 -0
- package/build/plugins/assetloader/index.d.ts +2 -0
- package/build/plugins/assetloader/index.mjs +6 -0
- package/build/plugins/axiscamera/index.cjs +1 -0
- package/build/plugins/axiscamera/index.d.ts +2 -0
- package/build/plugins/axiscamera/index.mjs +4 -0
- package/build/plugins/mediacreator/index.cjs +1 -0
- package/build/plugins/mediacreator/index.d.ts +2 -0
- package/build/{src/modules/mediacreator/MediaCreator.mjs → plugins/mediacreator/index.mjs} +1 -1
- package/build/plugins/orbitcontroller/index.cjs +1 -0
- package/build/plugins/orbitcontroller/index.d.ts +2 -0
- package/build/plugins/orbitcontroller/index.mjs +5 -0
- package/build/plugins/state/index.cjs +27 -0
- package/build/plugins/state/index.d.ts +2 -0
- package/build/plugins/state/index.mjs +4265 -0
- package/build/plugins/systeminfo/index.cjs +1 -0
- package/build/plugins/systeminfo/index.d.ts +2 -0
- package/build/plugins/systeminfo/index.mjs +136 -0
- package/build/plugins/toolbox/index.cjs +1 -0
- package/build/plugins/toolbox/index.d.ts +2 -0
- package/build/{src/modules/toolbox/Toolbox.mjs → plugins/toolbox/index.mjs} +8 -2
- package/build/src/components/gizmo/Gizmo.d.ts +1 -1
- package/build/src/components/gizmo/handles/AxisHandle.d.ts +1 -1
- package/build/src/components/gizmo/handles/RadialHandle.d.ts +1 -1
- package/build/src/components/gizmo/handles/ScaleHandle.d.ts +1 -1
- package/build/src/components/gizmo/rotate/RotateGizmo.d.ts +2 -2
- package/build/src/components/gizmo/scale/ScaleGizmo.d.ts +2 -2
- package/build/src/components/gizmo/translate/TranslateGizmo.d.ts +2 -2
- package/build/src/components/model/Model.d.ts +2 -2
- package/build/src/components/primitive/Primitive.d.ts +3 -3
- package/build/src/components/root/Root.d.ts +5 -7
- package/build/src/core/Dive.d.ts +1 -1
- package/build/src/engine/clock/Clock.d.ts +1 -0
- package/build/src/engine/index.d.ts +6 -0
- package/build/src/engine/renderer/Renderer.d.ts +47 -7
- package/build/src/events/index.d.ts +1 -0
- package/build/src/index.d.ts +4 -2
- package/build/src/interfaces/Draggable.d.ts +1 -1
- package/build/src/plugins/animation/index.d.ts +2 -0
- package/build/src/{modules/animation → plugins/animation/src}/animator/Animator.d.ts +2 -3
- package/build/src/plugins/animation/src/index.d.ts +3 -0
- package/build/src/plugins/animation/src/system/AnimationSystem.d.ts +23 -0
- package/build/src/plugins/ar/index.d.ts +4 -0
- package/build/src/plugins/ar/src/ARSystem.d.ts +24 -0
- package/build/src/plugins/ar/src/arquicklook/ARQuickLook.d.ts +15 -0
- package/build/src/plugins/ar/src/error/ar-errors.d.ts +18 -0
- package/build/src/{modules/ar → plugins/ar/src}/sceneviewer/SceneViewer.d.ts +10 -0
- package/build/src/{modules/ar → plugins/ar/src}/webxr/WebXR.d.ts +2 -2
- package/build/src/{modules/ar → plugins/ar/src}/webxr/controller/WebXRController.d.ts +2 -2
- package/build/src/{modules/ar → plugins/ar/src}/webxr/origin/WebXROrigin.d.ts +1 -1
- package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/WebXRRaycaster.d.ts +3 -3
- package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/ar/WebXRRaycasterAR.d.ts +1 -1
- package/build/src/{modules/ar → plugins/ar/src}/webxr/raycaster/three/WebXRRaycasterTHREE.d.ts +2 -2
- package/build/src/{modules/ar → plugins/ar/src}/webxr/touchscreencontrols/WebXRTouchscreenControls.d.ts +1 -1
- package/build/src/plugins/assetconverter/index.d.ts +1 -0
- package/build/src/plugins/assetconverter/src/AssetConverter.d.ts +13 -0
- package/build/src/plugins/assetexporter/index.d.ts +1 -0
- package/build/src/{modules/asset/exporter → plugins/assetexporter/src}/AssetExporter.d.ts +0 -17
- package/build/src/plugins/assetloader/index.d.ts +3 -0
- package/build/src/plugins/assetloader/src/loader/AssetLoader.d.ts +8 -0
- package/build/src/plugins/axiscamera/index.d.ts +1 -0
- package/build/src/{modules/axiscamera → plugins/axiscamera/src}/AxisCamera.d.ts +1 -4
- package/build/src/plugins/mediacreator/index.d.ts +1 -0
- package/build/src/plugins/mediacreator/src/MediaCreator.d.ts +15 -0
- package/build/src/plugins/orbitcontroller/index.d.ts +1 -0
- package/build/src/{modules/controller/orbit → plugins/orbitcontroller/src}/OrbitController.d.ts +3 -3
- package/build/src/plugins/state/index.d.ts +4 -0
- package/build/src/{modules/state → plugins/state/src}/State.d.ts +4 -27
- package/build/src/{modules/state → plugins/state/src}/actions/action.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/ar/launchar.d.ts +2 -2
- package/build/src/{modules/state → plugins/state/src}/actions/camera/computeencompassingview.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/camera/getcameratransform.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/camera/lockcamera.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/camera/movecamera.d.ts +3 -3
- package/build/src/{modules/state → plugins/state/src}/actions/camera/setcameralayer.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/camera/setcameratransform.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/camera/zoomcamera.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/media/generatemedia.d.ts +1 -1
- package/build/src/plugins/state/src/actions/object/addobject.d.ts +9 -0
- package/build/src/plugins/state/src/actions/object/deleteobject.d.ts +13 -0
- package/build/src/plugins/state/src/actions/object/deselectobject.d.ts +13 -0
- package/build/src/{modules/state → plugins/state/src}/actions/object/dropit.d.ts +3 -3
- package/build/src/{modules/state → plugins/state/src}/actions/object/getallobjects.d.ts +3 -2
- package/build/src/plugins/state/src/actions/object/getobjects.d.ts +13 -0
- package/build/src/{modules/state → plugins/state/src}/actions/object/modelloaded.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/object/placeonfloor.d.ts +3 -3
- package/build/src/plugins/state/src/actions/object/selectobject.d.ts +13 -0
- package/build/src/plugins/state/src/actions/object/setparent.d.ts +23 -0
- package/build/src/plugins/state/src/actions/object/updateobject.d.ts +13 -0
- package/build/src/{modules/state → plugins/state/src}/actions/renderer/startrender.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/scene/exportscene.d.ts +4 -4
- package/build/src/plugins/state/src/actions/scene/getallscenedata.d.ts +9 -0
- package/build/src/{modules/state → plugins/state/src}/actions/scene/setbackground.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/scene/updatescene.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmomode.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmoscalelinked.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/toolbox/setgizmovisible.d.ts +1 -1
- package/build/src/{modules/state → plugins/state/src}/actions/toolbox/usetool.d.ts +2 -2
- package/build/src/plugins/state/types/ActionTypes.d.ts +17 -0
- package/build/src/{types/SceneType.d.ts → plugins/state/types/StateExportFileType.d.ts} +1 -1
- package/build/src/plugins/state/types/StateSceneData.d.ts +19 -0
- package/build/src/plugins/state/types/index.d.ts +1 -0
- package/build/src/plugins/systeminfo/index.d.ts +2 -0
- package/build/src/{modules/systeminfo → plugins/systeminfo/src}/SystemInfo.d.ts +21 -31
- package/build/src/plugins/toolbox/index.d.ts +4 -0
- package/build/src/{modules/toolbox → plugins/toolbox/src}/BaseTool.d.ts +2 -4
- package/build/src/{modules/toolbox → plugins/toolbox/src}/Toolbox.d.ts +2 -11
- package/build/src/{modules/toolbox → plugins/toolbox/src}/select/SelectTool.d.ts +2 -6
- package/build/src/{modules/toolbox → plugins/toolbox/src}/transform/TransformTool.d.ts +2 -6
- package/build/src/types/components/DIVELight.d.ts +4 -0
- package/build/src/types/components/DIVESceneObject.d.ts +6 -0
- package/build/src/types/components/index.d.ts +2 -0
- package/build/src/types/index.d.ts +2 -5
- package/build/src/types/schema/BaseEntitySchema.d.ts +8 -0
- package/build/src/types/schema/EntitySchema.d.ts +11 -0
- package/build/src/types/schema/EntityTypeSchema.d.ts +1 -0
- package/build/src/types/schema/GeometrySchema.d.ts +7 -0
- package/build/src/types/schema/GeometryTypeSchema.d.ts +1 -0
- package/build/src/types/schema/GroupSchema.d.ts +11 -0
- package/build/src/types/schema/LightSchema.d.ts +28 -0
- package/build/src/{modules/state/types/COMMaterial.d.ts → types/schema/MaterialSchema.d.ts} +1 -1
- package/build/src/types/schema/ModelSchema.d.ts +14 -0
- package/build/src/types/schema/PovSchema.d.ts +10 -0
- package/build/src/types/schema/PrimitiveSchema.d.ts +14 -0
- package/build/src/types/schema/index.d.ts +11 -0
- package/package.json +52 -42
- package/build/chunks/FileTypes-DuVGjbcR.mjs +0 -36
- package/build/chunks/FileTypes-DzVpDu_p.cjs +0 -1
- package/build/chunks/ModuleRegistry-NyNtjHb2.cjs +0 -1
- package/build/chunks/ModuleRegistry-RSub8W0G.mjs +0 -13
- package/build/chunks/PerspectiveCamera-BByyG5R4.cjs +0 -1
- package/build/chunks/PerspectiveCamera-sm4_81KJ.mjs +0 -34
- package/build/chunks/SelectTool-C7nerV4P.cjs +0 -1
- package/build/chunks/VisibilityLayerMask-BI7jPKdx.cjs +0 -1
- package/build/chunks/VisibilityLayerMask-CXgt1fJc.mjs +0 -8
- package/build/chunks/findInterface-BEdL2iUQ.cjs +0 -1
- package/build/chunks/findInterface-OrXgmwxj.mjs +0 -18
- package/build/chunks/index-C7Wx_9uY.mjs +0 -33
- package/build/chunks/index-MNP0K5dt.cjs +0 -1
- package/build/chunks/package-DeBkqggW.mjs +0 -39
- package/build/chunks/package-o6as1hwQ.cjs +0 -1
- package/build/src/error/ar-compatibility/ar-compatibility-error.d.ts +0 -12
- package/build/src/modules/ModuleRegistry.d.ts +0 -19
- package/build/src/modules/animation/AnimationSystem.cjs +0 -1
- package/build/src/modules/animation/AnimationSystem.d.ts +0 -36
- package/build/src/modules/animation/AnimationSystem.mjs +0 -95
- package/build/src/modules/ar/ARSystem.cjs +0 -1
- package/build/src/modules/ar/ARSystem.d.ts +0 -71
- package/build/src/modules/ar/ARSystem.mjs +0 -163
- package/build/src/modules/ar/arquicklook/ARQuickLook.d.ts +0 -7
- package/build/src/modules/asset/converter/AssetConverter.d.ts +0 -30
- package/build/src/modules/asset/loader/AssetLoader.cjs +0 -4
- package/build/src/modules/asset/loader/AssetLoader.d.ts +0 -29
- package/build/src/modules/mediacreator/MediaCreator.cjs +0 -1
- package/build/src/modules/mediacreator/MediaCreator.d.ts +0 -44
- package/build/src/modules/state/State.cjs +0 -27
- package/build/src/modules/state/State.mjs +0 -4296
- package/build/src/modules/state/actions/object/addobject.d.ts +0 -8
- package/build/src/modules/state/actions/object/deleteobject.d.ts +0 -12
- package/build/src/modules/state/actions/object/deselectobject.d.ts +0 -12
- package/build/src/modules/state/actions/object/getobjects.d.ts +0 -12
- package/build/src/modules/state/actions/object/selectobject.d.ts +0 -12
- package/build/src/modules/state/actions/object/setparent.d.ts +0 -22
- package/build/src/modules/state/actions/object/updateobject.d.ts +0 -12
- package/build/src/modules/state/actions/scene/getallscenedata.d.ts +0 -9
- package/build/src/modules/state/types/ActionTypes.d.ts +0 -18
- package/build/src/modules/state/types/COMBaseEntity.d.ts +0 -8
- package/build/src/modules/state/types/COMEntity.d.ts +0 -11
- package/build/src/modules/state/types/COMEntityType.d.ts +0 -1
- package/build/src/modules/state/types/COMGeometry.d.ts +0 -7
- package/build/src/modules/state/types/COMGeometryType.d.ts +0 -1
- package/build/src/modules/state/types/COMGroup.d.ts +0 -11
- package/build/src/modules/state/types/COMLight.d.ts +0 -28
- package/build/src/modules/state/types/COMModel.d.ts +0 -14
- package/build/src/modules/state/types/COMPov.d.ts +0 -10
- package/build/src/modules/state/types/COMPrimitive.d.ts +0 -14
- package/build/src/modules/state/types/index.d.ts +0 -11
- package/build/src/modules/systeminfo/SystemInfo.cjs +0 -1
- package/build/src/modules/systeminfo/SystemInfo.mjs +0 -114
- package/build/src/modules/toolbox/Toolbox.cjs +0 -1
- package/build/src/types/SceneData.d.ts +0 -19
- package/build/src/types/SceneObjects.d.ts +0 -9
- package/build/src/types/UUID.d.ts +0 -1
- /package/build/{src/modules/asset/converter/AssetConverter.cjs → plugins/assetconverter/index.cjs} +0 -0
- /package/build/{src/modules/asset/converter/AssetConverter.mjs → plugins/assetconverter/index.mjs} +0 -0
- /package/build/src/{modules/events → events}/EventExecutor.d.ts +0 -0
- /package/build/src/{modules/animation → plugins/animation/src}/types/AnimatorParameters.d.ts +0 -0
- /package/build/src/{modules/ar → plugins/ar/src}/webxr/crosshair/WebXRCrosshair.d.ts +0 -0
- /package/build/src/{modules/ar → plugins/ar/src}/webxr/overlay/Overlay.d.ts +0 -0
- /package/build/src/{modules/asset → plugins/assetloader/src}/draco/DracoLoader.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/ActionRegistry.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/ar/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/camera/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/media/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/object/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/renderer/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/scene/index.d.ts +0 -0
- /package/build/src/{modules/state → plugins/state/src}/actions/toolbox/index.d.ts +0 -0
- /package/build/src/{types/info → plugins/systeminfo/types}/index.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var ft=Object.defineProperty;var _t=(r,n,e)=>n in r?ft(r,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[n]=e;var h=(r,n,e)=>_t(r,typeof n!="symbol"?n+"":n,e);const t=require("three"),J=require("./VisibilityLayerMask-BI7jPKdx.cjs"),y=require("./findInterface-BEdL2iUQ.cjs"),I=new t.Raycaster,p=new t.Vector3,E=new t.Vector3,c=new t.Quaternion,$={X:new t.Vector3(1,0,0),Y:new t.Vector3(0,1,0),Z:new t.Vector3(0,0,1)},F={type:"change"},tt={type:"mouseDown"},et={type:"mouseUp",mode:null},it={type:"objectChange"};class yt extends t.Object3D{constructor(n,e){super(),e===void 0&&(console.warn('THREE.TransformControls: The second parameter "domElement" is now mandatory.'),e=document),this.isTransformControls=!0,this.visible=!1,this.domElement=e,this.domElement.style.touchAction="none";const o=new vt;this._gizmo=o,this.add(o);const s=new Pt;this._plane=s,this.add(s);const a=this;function i(u,w){let G=w;Object.defineProperty(a,u,{get:function(){return G!==void 0?G:w},set:function(D){G!==D&&(G=D,s[u]=D,o[u]=D,a.dispatchEvent({type:u+"-changed",value:D}),a.dispatchEvent(F))}}),a[u]=w,s[u]=w,o[u]=w}i("camera",n),i("object",void 0),i("enabled",!0),i("axis",null),i("mode","translate"),i("translationSnap",null),i("rotationSnap",null),i("scaleSnap",null),i("space","world"),i("size",1),i("dragging",!1),i("showX",!0),i("showY",!0),i("showZ",!0);const d=new t.Vector3,f=new t.Vector3,x=new t.Quaternion,A=new t.Quaternion,j=new t.Vector3,z=new t.Quaternion,N=new t.Vector3,Z=new t.Vector3,S=new t.Vector3,v=0,b=new t.Vector3;i("worldPosition",d),i("worldPositionStart",f),i("worldQuaternion",x),i("worldQuaternionStart",A),i("cameraPosition",j),i("cameraQuaternion",z),i("pointStart",N),i("pointEnd",Z),i("rotationAxis",S),i("rotationAngle",v),i("eye",b),this._offset=new t.Vector3,this._startNorm=new t.Vector3,this._endNorm=new t.Vector3,this._cameraScale=new t.Vector3,this._parentPosition=new t.Vector3,this._parentQuaternion=new t.Quaternion,this._parentQuaternionInv=new t.Quaternion,this._parentScale=new t.Vector3,this._worldScaleStart=new t.Vector3,this._worldQuaternionInv=new t.Quaternion,this._worldScale=new t.Vector3,this._positionStart=new t.Vector3,this._quaternionStart=new t.Quaternion,this._scaleStart=new t.Vector3,this._getPointer=wt.bind(this),this._onPointerDown=bt.bind(this),this._onPointerHover=gt.bind(this),this._onPointerMove=Mt.bind(this),this._onPointerUp=St.bind(this),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointermove",this._onPointerHover),this.domElement.addEventListener("pointerup",this._onPointerUp)}updateMatrixWorld(n){this.object!==void 0&&(this.object.updateMatrixWorld(),this.object.parent===null?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this._parentPosition,this._parentQuaternion,this._parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this._worldScale),this._parentQuaternionInv.copy(this._parentQuaternion).invert(),this._worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this._cameraScale),this.camera.isOrthographicCamera?this.camera.getWorldDirection(this.eye).negate():this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld(n)}pointerHover(n){if(this.object===void 0||this.dragging===!0)return;n!==null&&I.setFromCamera(n,this.camera);const e=U(this._gizmo.picker[this.mode],I);e?this.axis=e.object.name:this.axis=null}pointerDown(n){if(!(this.object===void 0||this.dragging===!0||n!=null&&n.button!==0)&&this.axis!==null){n!==null&&I.setFromCamera(n,this.camera);const e=U(this._plane,I,!0);e&&(this.object.updateMatrixWorld(),this.object.parent.updateMatrixWorld(),this._positionStart.copy(this.object.position),this._quaternionStart.copy(this.object.quaternion),this._scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this._worldScaleStart),this.pointStart.copy(e.point).sub(this.worldPositionStart)),this.dragging=!0,tt.mode=this.mode,this.dispatchEvent(tt)}}pointerMove(n){const e=this.axis,o=this.mode,s=this.object;let a=this.space;if(o==="scale"?a="local":(e==="E"||e==="XYZE"||e==="XYZ")&&(a="world"),s===void 0||e===null||this.dragging===!1||n!==null&&n.button!==-1)return;n!==null&&I.setFromCamera(n,this.camera);const i=U(this._plane,I,!0);if(i){if(this.pointEnd.copy(i.point).sub(this.worldPositionStart),o==="translate")this._offset.copy(this.pointEnd).sub(this.pointStart),a==="local"&&e!=="XYZ"&&this._offset.applyQuaternion(this._worldQuaternionInv),e.indexOf("X")===-1&&(this._offset.x=0),e.indexOf("Y")===-1&&(this._offset.y=0),e.indexOf("Z")===-1&&(this._offset.z=0),a==="local"&&e!=="XYZ"?this._offset.applyQuaternion(this._quaternionStart).divide(this._parentScale):this._offset.applyQuaternion(this._parentQuaternionInv).divide(this._parentScale),s.position.copy(this._offset).add(this._positionStart),this.translationSnap&&(a==="local"&&(s.position.applyQuaternion(c.copy(this._quaternionStart).invert()),e.search("X")!==-1&&(s.position.x=Math.round(s.position.x/this.translationSnap)*this.translationSnap),e.search("Y")!==-1&&(s.position.y=Math.round(s.position.y/this.translationSnap)*this.translationSnap),e.search("Z")!==-1&&(s.position.z=Math.round(s.position.z/this.translationSnap)*this.translationSnap),s.position.applyQuaternion(this._quaternionStart)),a==="world"&&(s.parent&&s.position.add(p.setFromMatrixPosition(s.parent.matrixWorld)),e.search("X")!==-1&&(s.position.x=Math.round(s.position.x/this.translationSnap)*this.translationSnap),e.search("Y")!==-1&&(s.position.y=Math.round(s.position.y/this.translationSnap)*this.translationSnap),e.search("Z")!==-1&&(s.position.z=Math.round(s.position.z/this.translationSnap)*this.translationSnap),s.parent&&s.position.sub(p.setFromMatrixPosition(s.parent.matrixWorld))));else if(o==="scale"){if(e.search("XYZ")!==-1){let d=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(d*=-1),E.set(d,d,d)}else p.copy(this.pointStart),E.copy(this.pointEnd),p.applyQuaternion(this._worldQuaternionInv),E.applyQuaternion(this._worldQuaternionInv),E.divide(p),e.search("X")===-1&&(E.x=1),e.search("Y")===-1&&(E.y=1),e.search("Z")===-1&&(E.z=1);s.scale.copy(this._scaleStart).multiply(E),this.scaleSnap&&(e.search("X")!==-1&&(s.scale.x=Math.round(s.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),e.search("Y")!==-1&&(s.scale.y=Math.round(s.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),e.search("Z")!==-1&&(s.scale.z=Math.round(s.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if(o==="rotate"){this._offset.copy(this.pointEnd).sub(this.pointStart);const d=20/this.worldPosition.distanceTo(p.setFromMatrixPosition(this.camera.matrixWorld));let f=!1;e==="XYZE"?(this.rotationAxis.copy(this._offset).cross(this.eye).normalize(),this.rotationAngle=this._offset.dot(p.copy(this.rotationAxis).cross(this.eye))*d):(e==="X"||e==="Y"||e==="Z")&&(this.rotationAxis.copy($[e]),p.copy($[e]),a==="local"&&p.applyQuaternion(this.worldQuaternion),p.cross(this.eye),p.length()===0?f=!0:this.rotationAngle=this._offset.dot(p.normalize())*d),(e==="E"||f)&&(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this._startNorm.copy(this.pointStart).normalize(),this._endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this._endNorm.cross(this._startNorm).dot(this.eye)<0?1:-1),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),a==="local"&&e!=="E"&&e!=="XYZE"?(s.quaternion.copy(this._quaternionStart),s.quaternion.multiply(c.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this._parentQuaternionInv),s.quaternion.copy(c.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),s.quaternion.multiply(this._quaternionStart).normalize())}this.dispatchEvent(F),this.dispatchEvent(it)}}pointerUp(n){n!==null&&n.button!==0||(this.dragging&&this.axis!==null&&(et.mode=this.mode,this.dispatchEvent(et)),this.dragging=!1,this.axis=null)}dispose(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerHover),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.traverse(function(n){n.geometry&&n.geometry.dispose(),n.material&&n.material.dispose()})}attach(n){return this.object=n,this.visible=!0,this}detach(){return this.object=void 0,this.visible=!1,this.axis=null,this}reset(){this.enabled&&this.dragging&&(this.object.position.copy(this._positionStart),this.object.quaternion.copy(this._quaternionStart),this.object.scale.copy(this._scaleStart),this.dispatchEvent(F),this.dispatchEvent(it),this.pointStart.copy(this.pointEnd))}getRaycaster(){return I}getMode(){return this.mode}setMode(n){this.mode=n}setTranslationSnap(n){this.translationSnap=n}setRotationSnap(n){this.rotationSnap=n}setScaleSnap(n){this.scaleSnap=n}setSize(n){this.size=n}setSpace(n){this.space=n}}function wt(r){if(this.domElement.ownerDocument.pointerLockElement)return{x:0,y:0,button:r.button};{const n=this.domElement.getBoundingClientRect();return{x:(r.clientX-n.left)/n.width*2-1,y:-(r.clientY-n.top)/n.height*2+1,button:r.button}}}function gt(r){if(this.enabled)switch(r.pointerType){case"mouse":case"pen":this.pointerHover(this._getPointer(r));break}}function bt(r){this.enabled&&(document.pointerLockElement||this.domElement.setPointerCapture(r.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.pointerHover(this._getPointer(r)),this.pointerDown(this._getPointer(r)))}function Mt(r){this.enabled&&this.pointerMove(this._getPointer(r))}function St(r){this.enabled&&(this.domElement.releasePointerCapture(r.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.pointerUp(this._getPointer(r)))}function U(r,n,e){const o=n.intersectObject(r,!0);for(let s=0;s<o.length;s++)if(o[s].object.visible||e)return o[s];return!1}const k=new t.Euler,l=new t.Vector3(0,1,0),nt=new t.Vector3(0,0,0),ot=new t.Matrix4,q=new t.Quaternion,W=new t.Quaternion,M=new t.Vector3,st=new t.Matrix4,Y=new t.Vector3(1,0,0),T=new t.Vector3(0,1,0),O=new t.Vector3(0,0,1),B=new t.Vector3,C=new t.Vector3,X=new t.Vector3;class vt extends t.Object3D{constructor(){super(),this.isTransformControlsGizmo=!0,this.type="TransformControlsGizmo";const n=new t.MeshBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}),e=new t.LineBasicMaterial({depthTest:!1,depthWrite:!1,fog:!1,toneMapped:!1,transparent:!0}),o=n.clone();o.opacity=.15;const s=e.clone();s.opacity=.5;const a=n.clone();a.color.setHex(16711680);const i=n.clone();i.color.setHex(65280);const d=n.clone();d.color.setHex(255);const f=n.clone();f.color.setHex(16711680),f.opacity=.5;const x=n.clone();x.color.setHex(65280),x.opacity=.5;const A=n.clone();A.color.setHex(255),A.opacity=.5;const j=n.clone();j.opacity=.25;const z=n.clone();z.color.setHex(16776960),z.opacity=.25,n.clone().color.setHex(16776960);const Z=n.clone();Z.color.setHex(7895160);const S=new t.CylinderGeometry(0,.04,.1,12);S.translate(0,.05,0);const v=new t.BoxGeometry(.08,.08,.08);v.translate(0,.04,0);const b=new t.BufferGeometry;b.setAttribute("position",new t.Float32BufferAttribute([0,0,0,1,0,0],3));const u=new t.CylinderGeometry(.0075,.0075,.5,3);u.translate(0,.25,0);function w(_,H){const g=new t.TorusGeometry(_,.0075,3,64,H*Math.PI*2);return g.rotateY(Math.PI/2),g.rotateX(Math.PI/2),g}function G(){const _=new t.BufferGeometry;return _.setAttribute("position",new t.Float32BufferAttribute([0,0,0,1,1,1],3)),_}const D={X:[[new t.Mesh(S,a),[.5,0,0],[0,0,-Math.PI/2]],[new t.Mesh(S,a),[-.5,0,0],[0,0,Math.PI/2]],[new t.Mesh(u,a),[0,0,0],[0,0,-Math.PI/2]]],Y:[[new t.Mesh(S,i),[0,.5,0]],[new t.Mesh(S,i),[0,-.5,0],[Math.PI,0,0]],[new t.Mesh(u,i)]],Z:[[new t.Mesh(S,d),[0,0,.5],[Math.PI/2,0,0]],[new t.Mesh(S,d),[0,0,-.5],[-Math.PI/2,0,0]],[new t.Mesh(u,d),null,[Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.OctahedronGeometry(.1,0),j.clone()),[0,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),A.clone()),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),f.clone()),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),x.clone()),[.15,0,.15],[-Math.PI/2,0,0]]]},rt={X:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[.3,0,0],[0,0,-Math.PI/2]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,.3,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,-.3,0],[0,0,Math.PI]]],Z:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,.3],[Math.PI/2,0,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,-.3],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.OctahedronGeometry(.2,0),o)]],XY:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,0,.15],[-Math.PI/2,0,0]]]},at={START:[[new t.Mesh(new t.OctahedronGeometry(.01,2),s),null,null,null,"helper"]],END:[[new t.Mesh(new t.OctahedronGeometry(.01,2),s),null,null,null,"helper"]],DELTA:[[new t.Line(G(),s),null,null,null,"helper"]],X:[[new t.Line(b,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new t.Line(b,s.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new t.Line(b,s.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},lt={XYZE:[[new t.Mesh(w(.5,1),Z),null,[0,Math.PI/2,0]]],X:[[new t.Mesh(w(.5,.5),a)]],Y:[[new t.Mesh(w(.5,.5),i),null,[0,0,-Math.PI/2]]],Z:[[new t.Mesh(w(.5,.5),d),null,[0,Math.PI/2,0]]],E:[[new t.Mesh(w(.75,1),z),null,[0,Math.PI/2,0]]]},ht={AXIS:[[new t.Line(b,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},ct={XYZE:[[new t.Mesh(new t.SphereGeometry(.25,10,8),o)]],X:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[Math.PI/2,0,0]]],Z:[[new t.Mesh(new t.TorusGeometry(.5,.1,4,24),o),[0,0,0],[0,0,-Math.PI/2]]],E:[[new t.Mesh(new t.TorusGeometry(.75,.1,2,24),o)]]},dt={X:[[new t.Mesh(v,a),[.5,0,0],[0,0,-Math.PI/2]],[new t.Mesh(u,a),[0,0,0],[0,0,-Math.PI/2]],[new t.Mesh(v,a),[-.5,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(v,i),[0,.5,0]],[new t.Mesh(u,i)],[new t.Mesh(v,i),[0,-.5,0],[0,0,Math.PI]]],Z:[[new t.Mesh(v,d),[0,0,.5],[Math.PI/2,0,0]],[new t.Mesh(u,d),[0,0,0],[Math.PI/2,0,0]],[new t.Mesh(v,d),[0,0,-.5],[-Math.PI/2,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),A),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),f),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.15,.15,.01),x),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.BoxGeometry(.1,.1,.1),j.clone())]]},pt={X:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[.3,0,0],[0,0,-Math.PI/2]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[-.3,0,0],[0,0,Math.PI/2]]],Y:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,.3,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,-.3,0],[0,0,Math.PI]]],Z:[[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,.3],[Math.PI/2,0,0]],[new t.Mesh(new t.CylinderGeometry(.2,0,.6,4),o),[0,0,-.3],[-Math.PI/2,0,0]]],XY:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,.15,0]]],YZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[0,.15,.15],[0,Math.PI/2,0]]],XZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.01),o),[.15,0,.15],[-Math.PI/2,0,0]]],XYZ:[[new t.Mesh(new t.BoxGeometry(.2,.2,.2),o),[0,0,0]]]},ut={X:[[new t.Line(b,s.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new t.Line(b,s.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new t.Line(b,s.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]};function P(_){const H=new t.Object3D;for(const g in _)for(let Q=_[g].length;Q--;){const m=_[g][Q][0].clone(),L=_[g][Q][1],V=_[g][Q][2],R=_[g][Q][3],mt=_[g][Q][4];m.name=g,m.tag=mt,L&&m.position.set(L[0],L[1],L[2]),V&&m.rotation.set(V[0],V[1],V[2]),R&&m.scale.set(R[0],R[1],R[2]),m.updateMatrix();const K=m.geometry.clone();K.applyMatrix4(m.matrix),m.geometry=K,m.renderOrder=1/0,m.position.set(0,0,0),m.rotation.set(0,0,0),m.scale.set(1,1,1),H.add(m)}return H}this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=P(D)),this.add(this.gizmo.rotate=P(lt)),this.add(this.gizmo.scale=P(dt)),this.add(this.picker.translate=P(rt)),this.add(this.picker.rotate=P(ct)),this.add(this.picker.scale=P(pt)),this.add(this.helper.translate=P(at)),this.add(this.helper.rotate=P(ht)),this.add(this.helper.scale=P(ut)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}updateMatrixWorld(n){const o=(this.mode==="scale"?"local":this.space)==="local"?this.worldQuaternion:W;this.gizmo.translate.visible=this.mode==="translate",this.gizmo.rotate.visible=this.mode==="rotate",this.gizmo.scale.visible=this.mode==="scale",this.helper.translate.visible=this.mode==="translate",this.helper.rotate.visible=this.mode==="rotate",this.helper.scale.visible=this.mode==="scale";let s=[];s=s.concat(this.picker[this.mode].children),s=s.concat(this.gizmo[this.mode].children),s=s.concat(this.helper[this.mode].children);for(let a=0;a<s.length;a++){const i=s[a];i.visible=!0,i.rotation.set(0,0,0),i.position.copy(this.worldPosition);let d;if(this.camera.isOrthographicCamera?d=(this.camera.top-this.camera.bottom)/this.camera.zoom:d=this.worldPosition.distanceTo(this.cameraPosition)*Math.min(1.9*Math.tan(Math.PI*this.camera.fov/360)/this.camera.zoom,7),i.scale.set(1,1,1).multiplyScalar(d*this.size/4),i.tag==="helper"){i.visible=!1,i.name==="AXIS"?(i.visible=!!this.axis,this.axis==="X"&&(c.setFromEuler(k.set(0,0,0)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(Y).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="Y"&&(c.setFromEuler(k.set(0,0,Math.PI/2)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(T).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="Z"&&(c.setFromEuler(k.set(0,Math.PI/2,0)),i.quaternion.copy(o).multiply(c),Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))>.9&&(i.visible=!1)),this.axis==="XYZE"&&(c.setFromEuler(k.set(0,Math.PI/2,0)),l.copy(this.rotationAxis),i.quaternion.setFromRotationMatrix(ot.lookAt(nt,l,T)),i.quaternion.multiply(c),i.visible=this.dragging),this.axis==="E"&&(i.visible=!1)):i.name==="START"?(i.position.copy(this.worldPositionStart),i.visible=this.dragging):i.name==="END"?(i.position.copy(this.worldPosition),i.visible=this.dragging):i.name==="DELTA"?(i.position.copy(this.worldPositionStart),i.quaternion.copy(this.worldQuaternionStart),p.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),p.applyQuaternion(this.worldQuaternionStart.clone().invert()),i.scale.copy(p),i.visible=this.dragging):(i.quaternion.copy(o),this.dragging?i.position.copy(this.worldPositionStart):i.position.copy(this.worldPosition),this.axis&&(i.visible=this.axis.search(i.name)!==-1));continue}i.quaternion.copy(o),this.mode==="translate"||this.mode==="scale"?(i.name==="X"&&Math.abs(l.copy(Y).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="Y"&&Math.abs(l.copy(T).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="Z"&&Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))>.99&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="XY"&&Math.abs(l.copy(O).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="YZ"&&Math.abs(l.copy(Y).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1),i.name==="XZ"&&Math.abs(l.copy(T).applyQuaternion(o).dot(this.eye))<.2&&(i.scale.set(1e-10,1e-10,1e-10),i.visible=!1)):this.mode==="rotate"&&(q.copy(o),l.copy(this.eye).applyQuaternion(c.copy(o).invert()),i.name.search("E")!==-1&&i.quaternion.setFromRotationMatrix(ot.lookAt(this.eye,nt,T)),i.name==="X"&&(c.setFromAxisAngle(Y,Math.atan2(-l.y,l.z)),c.multiplyQuaternions(q,c),i.quaternion.copy(c)),i.name==="Y"&&(c.setFromAxisAngle(T,Math.atan2(l.x,l.z)),c.multiplyQuaternions(q,c),i.quaternion.copy(c)),i.name==="Z"&&(c.setFromAxisAngle(O,Math.atan2(l.y,l.x)),c.multiplyQuaternions(q,c),i.quaternion.copy(c))),i.visible=i.visible&&(i.name.indexOf("X")===-1||this.showX),i.visible=i.visible&&(i.name.indexOf("Y")===-1||this.showY),i.visible=i.visible&&(i.name.indexOf("Z")===-1||this.showZ),i.visible=i.visible&&(i.name.indexOf("E")===-1||this.showX&&this.showY&&this.showZ),i.material._color=i.material._color||i.material.color.clone(),i.material._opacity=i.material._opacity||i.material.opacity,i.material.color.copy(i.material._color),i.material.opacity=i.material._opacity,this.enabled&&this.axis&&(i.name===this.axis||this.axis.split("").some(function(f){return i.name===f}))&&(i.material.color.setHex(16776960),i.material.opacity=1)}super.updateMatrixWorld(n)}}class Pt extends t.Mesh{constructor(){super(new t.PlaneGeometry(1e5,1e5,2,2),new t.MeshBasicMaterial({visible:!1,wireframe:!0,side:t.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),this.isTransformControlsPlane=!0,this.type="TransformControlsPlane"}updateMatrixWorld(n){let e=this.space;switch(this.position.copy(this.worldPosition),this.mode==="scale"&&(e="local"),B.copy(Y).applyQuaternion(e==="local"?this.worldQuaternion:W),C.copy(T).applyQuaternion(e==="local"?this.worldQuaternion:W),X.copy(O).applyQuaternion(e==="local"?this.worldQuaternion:W),l.copy(C),this.mode){case"translate":case"scale":switch(this.axis){case"X":l.copy(this.eye).cross(B),M.copy(B).cross(l);break;case"Y":l.copy(this.eye).cross(C),M.copy(C).cross(l);break;case"Z":l.copy(this.eye).cross(X),M.copy(X).cross(l);break;case"XY":M.copy(X);break;case"YZ":M.copy(B);break;case"XZ":l.copy(X),M.copy(C);break;case"XYZ":case"E":M.set(0,0,0);break}break;case"rotate":default:M.set(0,0,0)}M.length()===0?this.quaternion.copy(this.cameraQuaternion):(st.lookAt(p.set(0,0,0),M,l),this.quaternion.setFromRotationMatrix(st)),super.updateMatrixWorld(n)}}class Et{constructor(n,e){h(this,"POINTER_DRAG_THRESHOLD",.001);h(this,"name");h(this,"_canvas");h(this,"_scene");h(this,"_controller");h(this,"_pointer");h(this,"_pointerPrimaryDown");h(this,"_pointerMiddleDown");h(this,"_pointerSecondaryDown");h(this,"_lastPointerDown");h(this,"_lastPointerUp");h(this,"_raycaster");h(this,"_intersects");h(this,"_hovered");h(this,"_dragging");h(this,"_dragStart");h(this,"_dragCurrent");h(this,"_dragEnd");h(this,"_dragDelta");h(this,"_draggable");h(this,"_dragRaycastOnObjects");this.name="BaseTool",this._canvas=e.domElement,this._scene=n,this._controller=e,this._pointer=new t.Vector2,this._pointerPrimaryDown=!1,this._pointerMiddleDown=!1,this._pointerSecondaryDown=!1,this._lastPointerDown=new t.Vector2,this._lastPointerUp=new t.Vector2,this._raycaster=new t.Raycaster,this._raycaster.layers.mask=J.PRODUCT_LAYER_MASK|J.UI_LAYER_MASK,this._intersects=[],this._hovered=null,this._dragging=!1,this._dragStart=new t.Vector3,this._dragCurrent=new t.Vector3,this._dragEnd=new t.Vector3,this._dragDelta=new t.Vector3,this._draggable=null,this._dragRaycastOnObjects=null}get _pointerAnyDown(){return this._pointerPrimaryDown||this._pointerMiddleDown||this._pointerSecondaryDown}activate(){}deactivate(){}onPointerDown(n){var e;switch(n.button){case 0:{this._pointerPrimaryDown=!0;break}case 1:{this._pointerMiddleDown=!0;break}case 2:{this._pointerSecondaryDown=!0;break}default:console.warn("DIVEBaseTool.onPointerDown: Unknown button: "+n.button)}this._lastPointerDown.copy(this._pointer),this._draggable=y.findInterface((e=this._intersects[0])==null?void 0:e.object,"isDraggable")||null}onDragStart(n){this._draggable&&(this._dragRaycastOnObjects!==null&&(this._intersects=this._raycaster.intersectObjects(this._dragRaycastOnObjects,!0)),this._intersects.length!==0&&(this._dragStart.copy(this._intersects[0].point.clone()),this._dragCurrent.copy(this._intersects[0].point.clone()),this._dragEnd.copy(this._dragStart.clone()),this._dragDelta.set(0,0,0),this._draggable&&this._draggable.onDragStart&&(this._draggable.onDragStart({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}),this._dragging=!0,this._controller.enabled=!1)))}onPointerMove(n){var o;this._pointer.x=n.offsetX/this._canvas.clientWidth*2-1,this._pointer.y=-(n.offsetY/this._canvas.clientHeight)*2+1,this._raycaster.setFromCamera(this._pointer,this._controller.object),this._intersects=this.raycast(this._scene.children);const e=y.findInterface((o=this._intersects[0])==null?void 0:o.object,"isHoverable");if(this._intersects[0]&&e){if(!this._hovered){e.onPointerEnter&&e.onPointerEnter(this._intersects[0]),this._hovered=e;return}if(this._hovered.uuid!==e.uuid){this._hovered.onPointerLeave&&this._hovered.onPointerLeave(),e.onPointerEnter&&e.onPointerEnter(this._intersects[0]),this._hovered=e;return}e.onPointerOver&&e.onPointerOver(this._intersects[0]),this._hovered=e}else this._hovered&&this._hovered.onPointerLeave&&this._hovered.onPointerLeave(),this._hovered=null;this._pointerAnyDown&&(this._dragging||this.onDragStart(n),this.onDrag(n))}onDrag(n){this._dragRaycastOnObjects!==null&&(this._intersects=this._raycaster.intersectObjects(this._dragRaycastOnObjects,!0));const e=this._intersects[0];e&&(this._dragCurrent.copy(e.point.clone()),this._dragEnd.copy(e.point.clone()),this._dragDelta.subVectors(this._dragCurrent.clone(),this._dragStart.clone()),this._draggable&&this._draggable.onDrag&&this._draggable.onDrag({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}))}onPointerUp(n){switch(this.pointerWasDragged()||this._dragging?this._draggable&&this.onDragEnd(n):this.onClick(n),n.button){case 0:this._pointerPrimaryDown=!1;break;case 1:this._pointerMiddleDown=!1;break;case 2:this._pointerSecondaryDown=!1;break}this._lastPointerUp.copy(this._pointer)}onClick(n){}onDragEnd(n){const e=this._intersects[0];e&&(this._dragEnd.copy(e.point.clone()),this._dragCurrent.copy(e.point.clone()),this._dragDelta.subVectors(this._dragCurrent.clone(),this._dragStart.clone())),this._draggable&&this._draggable.onDragEnd&&this._draggable.onDragEnd({dragStart:this._dragStart,dragCurrent:this._dragCurrent,dragEnd:this._dragEnd,dragDelta:this._dragDelta}),this._draggable=null,this._dragging=!1,this._dragStart.set(0,0,0),this._dragCurrent.set(0,0,0),this._dragEnd.set(0,0,0),this._dragDelta.set(0,0,0),this._controller.enabled=!0}onWheel(n){}raycast(n){return n!==void 0?this._raycaster.intersectObjects(n,!0).filter(e=>e.object.visible):this._raycaster.intersectObjects(this._scene.children,!0).filter(e=>e.object.visible)}pointerWasDragged(){return this._lastPointerDown.distanceTo(this._pointer)>this.POINTER_DRAG_THRESHOLD}}class xt extends Et{constructor(e,o){super(e,o);h(this,"isTransformTool",!0);h(this,"_scaleLinked");h(this,"_gizmo");this.name="DIVETransformTool",this._scaleLinked=!1,this._gizmo=this.initGizmo(),this._scene.add(this._gizmo)}activate(){}setGizmoMode(e){this._gizmo.mode=e}setGizmoVisibility(e){const o=this._scene.children.includes(this._gizmo);e&&!o?(this._scene.add(this._gizmo),"isTransformControls"in this._gizmo&&this._gizmo.getRaycaster().layers.enableAll()):!e&&o&&(this._scene.remove(this._gizmo),"isTransformControls"in this._gizmo&&this._gizmo.getRaycaster().layers.disableAll())}setGizmoScaleLinked(e){this._scaleLinked=e}initGizmo(){const e=new yt(this._controller.object,this._controller.domElement);return e.mode="translate",e.traverse(o=>{if(!("isMesh"in o))return;const s=o.material;o.name==="X"&&s.color.set(y.AxesColorRed),o.name==="Y"&&s.color.set(y.AxesColorGreen),o.name==="Z"&&s.color.set(y.AxesColorBlue),o.name==="XY"&&s.color.set(y.AxesColorBlue),o.name==="YZ"&&s.color.set(y.AxesColorRed),o.name==="XZ"&&s.color.set(y.AxesColorGreen)}),e.addEventListener("mouseDown",()=>{this._controller.enabled=!1,y.implementsInterface(e.object,"isMovable")&&e.object.onMoveStart&&e.object.onMoveStart()}),e.addEventListener("objectChange",()=>{if(y.implementsInterface(e.object,"isMovable")&&e.object.onMove&&(e.object.onMove(),this._scaleLinked)){const o=e.object.scale,s=(o.x+o.y+o.z)/3;e.object.scale.set(s,s,s)}}),e.addEventListener("mouseUp",()=>{this._controller.enabled=!0,y.implementsInterface(e.object,"isMovable")&&e.object.onMoveEnd&&e.object.onMoveEnd()}),e}}const Dt=r=>r.isSelectTool!==void 0;class It extends xt{constructor(e,o){super(e,o);h(this,"isSelectTool",!0);this.name="SelectTool"}activate(){}select(e){this.attachGizmo(e),e.onSelect&&e.onSelect()}deselect(e){this.detachGizmo(),e.onDeselect&&e.onDeselect()}attachGizmo(e){if("isMovable"in e){const o=e;this._gizmo.attach(o),this.setGizmoVisibility(o.visible)}}detachGizmo(){this._gizmo.detach()}onClick(e){super.onClick(e);const o=this._raycaster.intersectObjects(this._scene.root.children,!0).filter(a=>a.object.visible)[0],s=y.findInterface(o==null?void 0:o.object,"isSelectable");if(!o||!s){this._gizmo.object&&this.deselect(this._gizmo.object);return}if(this._gizmo.object){if(this._gizmo.object.uuid===s.uuid)return;this.deselect(this._gizmo.object)}this.select(s)}}exports.DIVESelectTool=It;exports.isSelectTool=Dt;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.COORDINATE_LAYER_MASK=2;exports.DEFAULT_LAYER_MASK=1;exports.HELPER_LAYER_MASK=8;exports.PRODUCT_LAYER_MASK=16;exports.UI_LAYER_MASK=4;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const t="#c20017",n="#00ab26",o="#0081d4",f=t,u=n,x=o;function s(e,r){return e?r in e:!1}function l(e,r){if(e)return s(e,r)?e:l(e.parent,r)}exports.AxesColorBlue=x;exports.AxesColorBlueLetter=o;exports.AxesColorGreen=u;exports.AxesColorGreenLetter=n;exports.AxesColorRed=f;exports.AxesColorRedLetter=t;exports.findInterface=l;exports.implementsInterface=s;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
const n = "#c20017", s = "#00ab26", t = "#0081d4", f = n, l = s, u = t;
|
|
2
|
-
function o(e, r) {
|
|
3
|
-
return e ? r in e : !1;
|
|
4
|
-
}
|
|
5
|
-
function a(e, r) {
|
|
6
|
-
if (e)
|
|
7
|
-
return o(e, r) ? e : a(e.parent, r);
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
f as A,
|
|
11
|
-
l as a,
|
|
12
|
-
u as b,
|
|
13
|
-
n as c,
|
|
14
|
-
s as d,
|
|
15
|
-
t as e,
|
|
16
|
-
a as f,
|
|
17
|
-
o as i
|
|
18
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
var P = Object.defineProperty;
|
|
2
|
-
var R = (r, i, n) => i in r ? P(r, i, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[i] = n;
|
|
3
|
-
var I = (r, i, n) => R(r, typeof i != "symbol" ? i + "" : i, n);
|
|
4
|
-
class A extends Error {
|
|
5
|
-
constructor(n, a, d, E) {
|
|
6
|
-
var S;
|
|
7
|
-
const o = a.match(
|
|
8
|
-
/(Chrome|Safari|Firefox|Edge)\/(\d+\.\d+)/
|
|
9
|
-
), O = o ? o[1] : "Unknown", s = o ? o[2] : "Unknown", _ = a.match(/\((.*?)\)/), N = _ ? _[1] : "Unknown", t = ((S = N.match(/OS (\d+_\d+)/)) == null ? void 0 : S[1]) || "Unknown", c = l(N);
|
|
10
|
-
let e = n;
|
|
11
|
-
(c === "iOS" || c === "iPadOS") && (O !== "Safari" ? e += ` ARQuickLook is only supported in Safari browser. Current browser: ${O} ${s}` : parseFloat(t.replace("_", ".")) < 13 && (e += ` ARQuickLook requires iOS/iPadOS 13.0 or later. Current version: ${t}`));
|
|
12
|
-
super(e);
|
|
13
|
-
I(this, "browserInfo");
|
|
14
|
-
this.name = "ARCompatibilityError", this.browserInfo = {
|
|
15
|
-
userAgent: a,
|
|
16
|
-
platform: d,
|
|
17
|
-
vendor: E,
|
|
18
|
-
browser: O,
|
|
19
|
-
version: s,
|
|
20
|
-
os: c,
|
|
21
|
-
osVersion: t
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function l(r) {
|
|
26
|
-
return r.includes("iPhone") ? "iOS" : r.includes("iPad") ? "iPadOS" : r.includes("Macintosh") ? "macOS" : "Unknown";
|
|
27
|
-
}
|
|
28
|
-
var u = /* @__PURE__ */ ((r) => (r.IOS = "iOS", r.ANDROID = "Android", r.WINDOWS = "Windows", r.MACOS = "MacOS", r.LINUX = "Linux", r.UNKNOWN = "Unknown", r))(u || {}), w = /* @__PURE__ */ ((r) => (r.NO_WEBXR_API = "NO_WEBXR_API", r.NO_HTTPS = "NO_HTTPS", r.IMMERSIVE_AR_NOT_SUPPORTED_BY_DEVICE = "IMMERSIVE_AR_NOT_SUPPORTED_BY_DEVICE", r.AR_PERMISSION_DENIED = "AR_PERMISSION_DENIED", r.UNKNOWN_ERROR = "UNKNOWN_ERROR", r))(w || {});
|
|
29
|
-
export {
|
|
30
|
-
A,
|
|
31
|
-
u as E,
|
|
32
|
-
w as a
|
|
33
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var P=Object.defineProperty;var l=(r,i,n)=>i in r?P(r,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[i]=n;var I=(r,i,n)=>l(r,typeof i!="symbol"?i+"":i,n);class w extends Error{constructor(n,t,d,u){var N;const o=t.match(/(Chrome|Safari|Firefox|Edge)\/(\d+\.\d+)/),O=o?o[1]:"Unknown",c=o?o[2]:"Unknown",_=t.match(/\((.*?)\)/),S=_?_[1]:"Unknown",e=((N=S.match(/OS (\d+_\d+)/))==null?void 0:N[1])||"Unknown",a=f(S);let s=n;(a==="iOS"||a==="iPadOS")&&(O!=="Safari"?s+=` ARQuickLook is only supported in Safari browser. Current browser: ${O} ${c}`:parseFloat(e.replace("_","."))<13&&(s+=` ARQuickLook requires iOS/iPadOS 13.0 or later. Current version: ${e}`));super(s);I(this,"browserInfo");this.name="ARCompatibilityError",this.browserInfo={userAgent:t,platform:d,vendor:u,browser:O,version:c,os:a,osVersion:e}}}function f(r){return r.includes("iPhone")?"iOS":r.includes("iPad")?"iPadOS":r.includes("Macintosh")?"macOS":"Unknown"}var E=(r=>(r.IOS="iOS",r.ANDROID="Android",r.WINDOWS="Windows",r.MACOS="MacOS",r.LINUX="Linux",r.UNKNOWN="Unknown",r))(E||{}),R=(r=>(r.NO_WEBXR_API="NO_WEBXR_API",r.NO_HTTPS="NO_HTTPS",r.IMMERSIVE_AR_NOT_SUPPORTED_BY_DEVICE="IMMERSIVE_AR_NOT_SUPPORTED_BY_DEVICE",r.AR_PERMISSION_DENIED="AR_PERMISSION_DENIED",r.UNKNOWN_ERROR="UNKNOWN_ERROR",r))(R||{});exports.ARCompatibilityError=w;exports.ESystem=E;exports.EWebXRUnsupportedReason=R;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const e = "@shopware-ag/dive", s = "2.0.1-beta.5", t = "Shopware Spatial Framework", o = "module", r = "build/dive.cjs", i = "build/dive.mjs", d = "build/dive.d.ts", l = { ".": { types: "./build/dive.d.ts", import: "./build/dive.mjs", require: "./build/dive.cjs" }, "./modules/AnimationSystem": { types: "./build/src/modules/animation/AnimationSystem.d.ts", import: "./build/src/modules/animation/AnimationSystem.mjs", require: "./build/src/modules/animation/AnimationSystem.cjs" }, "./modules/ARSystem": { types: "./build/src/modules/ar/ARSystem.d.ts", import: "./build/src/modules/ar/ARSystem.mjs", require: "./build/src/modules/ar/ARSystem.cjs" }, "./modules/AssetConverter": { types: "./build/src/modules/asset/converter/AssetConverter.d.ts", import: "./build/src/modules/asset/converter/AssetConverter.mjs", require: "./build/src/modules/asset/converter/AssetConverter.cjs" }, "./modules/AssetExporter": { types: "./build/src/modules/asset/exporter/AssetExporter.d.ts", import: "./build/src/modules/asset/exporter/AssetExporter.mjs", require: "./build/src/modules/asset/exporter/AssetExporter.cjs" }, "./modules/AssetLoader": { types: "./build/src/modules/asset/loader/AssetLoader.d.ts", import: "./build/src/modules/asset/loader/AssetLoader.mjs", require: "./build/src/modules/asset/loader/AssetLoader.cjs" }, "./modules/MediaCreator": { types: "./build/src/modules/mediacreator/MediaCreator.d.ts", import: "./build/src/modules/mediacreator/MediaCreator.mjs", require: "./build/src/modules/mediacreator/MediaCreator.cjs" }, "./modules/State": { types: "./build/src/modules/state/State.d.ts", import: "./build/src/modules/state/State.mjs", require: "./build/src/modules/state/State.cjs" }, "./modules/SystemInfo": { types: "./build/src/modules/systeminfo/SystemInfo.d.ts", import: "./build/src/modules/systeminfo/SystemInfo.mjs", require: "./build/src/modules/systeminfo/SystemInfo.cjs" }, "./modules/Toolbox": { types: "./build/src/modules/toolbox/Toolbox.d.ts", import: "./build/src/modules/toolbox/Toolbox.mjs", require: "./build/src/modules/toolbox/Toolbox.cjs" } }, a = ["build", "LICENSE", "package.json"], c = ["dive", "shopware", "sw6", "three", "three.js", "3d", "typescript"], u = "git@github.com:shopware/dive.git", m = "ffrank <f.frank@shopware.com>", n = "MIT", p = ["> 1%, not dead, not ie 11, not op_mini all"], b = { "@tweenjs/tween.js": "^23.1.1", lodash: "^4.17.21", three: "^0.163.0", "three-spritetext": "^1.8.2" }, y = { "@eslint/js": "^9.1.1", "@testing-library/jest-dom": "^6.6.3", "@types/jest": "^29.5.12", "@types/lodash": "^4.17.12", "@types/node": "^20.12.7", "@types/three": "^0.163.0", "@vitest/coverage-v8": "3.1.2", acorn: "^8.14.1", "acorn-walk": "^8.3.4", eslint: "^9.1.1", glob: "^11.0.1", globals: "^15.0.0", jsdom: "^26.1.0", "magic-string": "^0.30.17", prettier: "^3.3.3", "prettier-plugin-multiline-arrays": "^3.0.6", "rollup-plugin-copy": "^3.5.0", "ts-jest": "^29.1.2", "ts-morph": "^25.0.1", "ts-node": "^10.9.2", tsc: "^2.0.4", tsx: "^4.19.4", typescript: "^5.8.2", "typescript-eslint": "^7.7.1", vite: "^6.2.1", "vite-plugin-dts": "^4.5.3", "vite-plugin-wasm": "^3.4.1", vitest: "^3.1.2" }, v = { "validate-build-paths": "NODE_OPTIONS='--loader ts-node/esm' ts-node ci/build/validate-build-paths.ts", build: "vite build", dev: "vite build --watch", lint: "eslint", "prettier:check": "prettier --check .", "prettier:fix": "prettier --write .", unit: "vitest --run", coverage: "vitest --coverage --run", docs: "yarn docs:actions && yarn docs:modules", "docs:actions": "tsx docs/generators/generate-actions-docs.ts", "docs:modules": "tsx docs/generators/generate-modules-docs.ts", ci: "yarn lint && yarn prettier:check && yarn docs && yarn coverage && yarn build" }, j = {
|
|
2
|
-
name: e,
|
|
3
|
-
version: s,
|
|
4
|
-
description: t,
|
|
5
|
-
type: o,
|
|
6
|
-
main: r,
|
|
7
|
-
module: i,
|
|
8
|
-
types: d,
|
|
9
|
-
exports: l,
|
|
10
|
-
files: a,
|
|
11
|
-
keywords: c,
|
|
12
|
-
repository: u,
|
|
13
|
-
author: m,
|
|
14
|
-
license: n,
|
|
15
|
-
browserslist: p,
|
|
16
|
-
dependencies: b,
|
|
17
|
-
devDependencies: y,
|
|
18
|
-
scripts: v
|
|
19
|
-
};
|
|
20
|
-
export {
|
|
21
|
-
m as author,
|
|
22
|
-
p as browserslist,
|
|
23
|
-
j as default,
|
|
24
|
-
b as dependencies,
|
|
25
|
-
t as description,
|
|
26
|
-
y as devDependencies,
|
|
27
|
-
l as exports,
|
|
28
|
-
a as files,
|
|
29
|
-
c as keywords,
|
|
30
|
-
n as license,
|
|
31
|
-
r as main,
|
|
32
|
-
i as module,
|
|
33
|
-
e as name,
|
|
34
|
-
u as repository,
|
|
35
|
-
v as scripts,
|
|
36
|
-
o as type,
|
|
37
|
-
d as types,
|
|
38
|
-
s as version
|
|
39
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="@shopware-ag/dive",s="2.0.1-beta.5",t="Shopware Spatial Framework",o="module",r="build/dive.cjs",i="build/dive.mjs",d="build/dive.d.ts",l={".":{types:"./build/dive.d.ts",import:"./build/dive.mjs",require:"./build/dive.cjs"},"./modules/AnimationSystem":{types:"./build/src/modules/animation/AnimationSystem.d.ts",import:"./build/src/modules/animation/AnimationSystem.mjs",require:"./build/src/modules/animation/AnimationSystem.cjs"},"./modules/ARSystem":{types:"./build/src/modules/ar/ARSystem.d.ts",import:"./build/src/modules/ar/ARSystem.mjs",require:"./build/src/modules/ar/ARSystem.cjs"},"./modules/AssetConverter":{types:"./build/src/modules/asset/converter/AssetConverter.d.ts",import:"./build/src/modules/asset/converter/AssetConverter.mjs",require:"./build/src/modules/asset/converter/AssetConverter.cjs"},"./modules/AssetExporter":{types:"./build/src/modules/asset/exporter/AssetExporter.d.ts",import:"./build/src/modules/asset/exporter/AssetExporter.mjs",require:"./build/src/modules/asset/exporter/AssetExporter.cjs"},"./modules/AssetLoader":{types:"./build/src/modules/asset/loader/AssetLoader.d.ts",import:"./build/src/modules/asset/loader/AssetLoader.mjs",require:"./build/src/modules/asset/loader/AssetLoader.cjs"},"./modules/MediaCreator":{types:"./build/src/modules/mediacreator/MediaCreator.d.ts",import:"./build/src/modules/mediacreator/MediaCreator.mjs",require:"./build/src/modules/mediacreator/MediaCreator.cjs"},"./modules/State":{types:"./build/src/modules/state/State.d.ts",import:"./build/src/modules/state/State.mjs",require:"./build/src/modules/state/State.cjs"},"./modules/SystemInfo":{types:"./build/src/modules/systeminfo/SystemInfo.d.ts",import:"./build/src/modules/systeminfo/SystemInfo.mjs",require:"./build/src/modules/systeminfo/SystemInfo.cjs"},"./modules/Toolbox":{types:"./build/src/modules/toolbox/Toolbox.d.ts",import:"./build/src/modules/toolbox/Toolbox.mjs",require:"./build/src/modules/toolbox/Toolbox.cjs"}},a=["build","LICENSE","package.json"],c=["dive","shopware","sw6","three","three.js","3d","typescript"],n="git@github.com:shopware/dive.git",u="ffrank <f.frank@shopware.com>",m="MIT",p=["> 1%, not dead, not ie 11, not op_mini all"],b={"@tweenjs/tween.js":"^23.1.1",lodash:"^4.17.21",three:"^0.163.0","three-spritetext":"^1.8.2"},y={"@eslint/js":"^9.1.1","@testing-library/jest-dom":"^6.6.3","@types/jest":"^29.5.12","@types/lodash":"^4.17.12","@types/node":"^20.12.7","@types/three":"^0.163.0","@vitest/coverage-v8":"3.1.2",acorn:"^8.14.1","acorn-walk":"^8.3.4",eslint:"^9.1.1",glob:"^11.0.1",globals:"^15.0.0",jsdom:"^26.1.0","magic-string":"^0.30.17",prettier:"^3.3.3","prettier-plugin-multiline-arrays":"^3.0.6","rollup-plugin-copy":"^3.5.0","ts-jest":"^29.1.2","ts-morph":"^25.0.1","ts-node":"^10.9.2",tsc:"^2.0.4",tsx:"^4.19.4",typescript:"^5.8.2","typescript-eslint":"^7.7.1",vite:"^6.2.1","vite-plugin-dts":"^4.5.3","vite-plugin-wasm":"^3.4.1",vitest:"^3.1.2"},v={"validate-build-paths":"NODE_OPTIONS='--loader ts-node/esm' ts-node ci/build/validate-build-paths.ts",build:"vite build",dev:"vite build --watch",lint:"eslint","prettier:check":"prettier --check .","prettier:fix":"prettier --write .",unit:"vitest --run",coverage:"vitest --coverage --run",docs:"yarn docs:actions && yarn docs:modules","docs:actions":"tsx docs/generators/generate-actions-docs.ts","docs:modules":"tsx docs/generators/generate-modules-docs.ts",ci:"yarn lint && yarn prettier:check && yarn docs && yarn coverage && yarn build"},j={name:e,version:s,description:t,type:o,main:r,module:i,types:d,exports:l,files:a,keywords:c,repository:n,author:u,license:m,browserslist:p,dependencies:b,devDependencies:y,scripts:v};exports.author=u;exports.browserslist=p;exports.default=j;exports.dependencies=b;exports.description=t;exports.devDependencies=y;exports.exports=l;exports.files=a;exports.keywords=c;exports.license=m;exports.main=r;exports.module=i;exports.name=e;exports.repository=n;exports.scripts=v;exports.type=o;exports.types=d;exports.version=s;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare class ARCompatibilityError extends Error {
|
|
2
|
-
readonly browserInfo: {
|
|
3
|
-
userAgent: string;
|
|
4
|
-
platform: string;
|
|
5
|
-
vendor: string;
|
|
6
|
-
browser: string;
|
|
7
|
-
version: string;
|
|
8
|
-
os: string;
|
|
9
|
-
osVersion: string;
|
|
10
|
-
};
|
|
11
|
-
constructor(baseMessage: string, userAgent: string, platform: string, vendor: string);
|
|
12
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Central export point for the module system.
|
|
3
|
-
* This is the only place where ModuleRegistry should be imported from.
|
|
4
|
-
*/
|
|
5
|
-
declare const ModuleRegistry: {
|
|
6
|
-
readonly AnimationSystem: () => Promise<typeof import('./animation/AnimationSystem.ts').AnimationSystem>;
|
|
7
|
-
readonly ARSystem: () => Promise<typeof import('./ar/ARSystem.ts').ARSystem>;
|
|
8
|
-
readonly AssetConverter: () => Promise<typeof import('./asset/converter/AssetConverter.ts').AssetConverter>;
|
|
9
|
-
readonly AssetExporter: () => Promise<typeof import('./asset/exporter/AssetExporter.ts').AssetExporter>;
|
|
10
|
-
readonly AssetLoader: () => Promise<typeof import('./asset/loader/AssetLoader.ts').AssetLoader>;
|
|
11
|
-
readonly MediaCreator: () => Promise<typeof import('./mediacreator/MediaCreator.ts').MediaCreator>;
|
|
12
|
-
readonly State: () => Promise<typeof import('./state/State.ts').State>;
|
|
13
|
-
readonly Toolbox: () => Promise<typeof import('./toolbox/Toolbox.ts').Toolbox>;
|
|
14
|
-
};
|
|
15
|
-
type ModuleRegistry = typeof ModuleRegistry;
|
|
16
|
-
type ModuleName = keyof ModuleRegistry;
|
|
17
|
-
type ModuleType<T extends keyof ModuleRegistry> = ReturnType<ModuleRegistry[T]> extends Promise<infer U> ? U : never;
|
|
18
|
-
export declare const getModule: <T extends ModuleName>(moduleName: T) => Promise<ModuleType<T>>;
|
|
19
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var h=Object.defineProperty;var d=(n,e,t)=>e in n?h(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var i=(n,e,t)=>d(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@tweenjs/tween.js"),r=require("three");class u extends r.EventDispatcher{constructor(t,p,a,s){super();i(this,"_uuid",r.MathUtils.generateUUID());i(this,"_playing",!1);i(this,"_stopped",!1);i(this,"_completed",!1);this.object=t,this.to=p,this.duration=a,this.options=s}get uuid(){return this._uuid}get playing(){return this._playing}get stopped(){return this._stopped}get completed(){return this._completed}dispose(){this._playing=!1,this._stopped=!1,this._completed=!1}play(){return this._playing=!0,this._stopped=!1,this.dispatchEvent({type:"play",target:this}),console.log("play",this),this}stop(){return this._playing=!1,this._stopped=!0,this.dispatchEvent({type:"stop",target:this}),this}}class _{constructor(){i(this,"uuid",r.MathUtils.generateUUID());i(this,"_callbackMap",new Map);i(this,"_tweens",new Map)}createAnimator(e,t,p,a){var o,c;const s=new u(e,t,p,a);return this._callbackMap.set(s.uuid,{onUpdate:((o=s.options)==null?void 0:o.onUpdate)??(()=>{}),onComplete:((c=s.options)==null?void 0:c.onComplete)??(()=>{})}),this._setupTween(s),s}unregister(e){if(!this._callbackMap.has(e)){console.warn(`Animator with uuid ${e} not registered`);return}this._callbackMap.delete(e),this._tweens.delete(e)}dispose(){this._callbackMap.clear(),this._tweens.clear()}tick(){l.update()}animate(e){return new l.Tween(e)}_setupTween(e){var p;const t=new l.Tween(e.object).to(e.to,e.duration).easing(((p=e.options)==null?void 0:p.easing)??l.Easing.Quadratic.Out).onUpdate((a,s)=>{var o;(o=this._callbackMap.get(e.uuid))==null||o.onUpdate(a,s)}).onComplete(a=>{var s;(s=this._callbackMap.get(e.uuid))==null||s.onComplete(a)});e.addEventListener("play",()=>{t.start()}),e.addEventListener("stop",()=>{t.stop()}),this._tweens.set(e.uuid,t)}}exports.AnimationSystem=_;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Tween } from '@tweenjs/tween.js';
|
|
2
|
-
import { Animator } from './animator/Animator.ts';
|
|
3
|
-
import { UUID } from '../../types/index.ts';
|
|
4
|
-
import { DIVETicker } from '../../engine/clock/Clock.ts';
|
|
5
|
-
import { TAnimatorParameters } from './types/AnimatorParameters.ts';
|
|
6
|
-
export type * from './animator/Animator.ts';
|
|
7
|
-
declare global {
|
|
8
|
-
interface ModuleClasses {
|
|
9
|
-
AnimationSystem: typeof AnimationSystem;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* @module AnimationSystem
|
|
14
|
-
*
|
|
15
|
-
* Updates all animations.
|
|
16
|
-
* DIVE uses Tween.js to handle animations.
|
|
17
|
-
*/
|
|
18
|
-
export declare class AnimationSystem implements DIVETicker {
|
|
19
|
-
uuid: string;
|
|
20
|
-
private _callbackMap;
|
|
21
|
-
private _tweens;
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new animator and registers it.
|
|
24
|
-
* @param object - The object to animate.
|
|
25
|
-
* @param to - The target object.
|
|
26
|
-
* @param duration - The duration of the animation.
|
|
27
|
-
* @param options - The options for the animation.
|
|
28
|
-
* @returns The animator.
|
|
29
|
-
*/
|
|
30
|
-
createAnimator<T extends object>(object: T, to: T, duration: number, options?: TAnimatorParameters<T>): Animator<T>;
|
|
31
|
-
unregister(uuid: UUID): void;
|
|
32
|
-
dispose(): void;
|
|
33
|
-
tick(): void;
|
|
34
|
-
animate<T extends object>(object: T): Tween<T>;
|
|
35
|
-
private _setupTween;
|
|
36
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
var c = Object.defineProperty;
|
|
2
|
-
var d = (p, t, e) => t in p ? c(p, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : p[t] = e;
|
|
3
|
-
var i = (p, t, e) => d(p, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
-
import { update as u, Tween as r, Easing as _ } from "@tweenjs/tween.js";
|
|
5
|
-
import { EventDispatcher as g, MathUtils as h } from "three";
|
|
6
|
-
class w extends g {
|
|
7
|
-
constructor(e, n, a, s) {
|
|
8
|
-
super();
|
|
9
|
-
i(this, "_uuid", h.generateUUID());
|
|
10
|
-
i(this, "_playing", !1);
|
|
11
|
-
i(this, "_stopped", !1);
|
|
12
|
-
i(this, "_completed", !1);
|
|
13
|
-
this.object = e, this.to = n, this.duration = a, this.options = s;
|
|
14
|
-
}
|
|
15
|
-
get uuid() {
|
|
16
|
-
return this._uuid;
|
|
17
|
-
}
|
|
18
|
-
get playing() {
|
|
19
|
-
return this._playing;
|
|
20
|
-
}
|
|
21
|
-
get stopped() {
|
|
22
|
-
return this._stopped;
|
|
23
|
-
}
|
|
24
|
-
get completed() {
|
|
25
|
-
return this._completed;
|
|
26
|
-
}
|
|
27
|
-
dispose() {
|
|
28
|
-
this._playing = !1, this._stopped = !1, this._completed = !1;
|
|
29
|
-
}
|
|
30
|
-
play() {
|
|
31
|
-
return this._playing = !0, this._stopped = !1, this.dispatchEvent({ type: "play", target: this }), console.log("play", this), this;
|
|
32
|
-
}
|
|
33
|
-
stop() {
|
|
34
|
-
return this._playing = !1, this._stopped = !0, this.dispatchEvent({ type: "stop", target: this }), this;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
class M {
|
|
38
|
-
constructor() {
|
|
39
|
-
i(this, "uuid", h.generateUUID());
|
|
40
|
-
i(this, "_callbackMap", /* @__PURE__ */ new Map());
|
|
41
|
-
i(this, "_tweens", /* @__PURE__ */ new Map());
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Creates a new animator and registers it.
|
|
45
|
-
* @param object - The object to animate.
|
|
46
|
-
* @param to - The target object.
|
|
47
|
-
* @param duration - The duration of the animation.
|
|
48
|
-
* @param options - The options for the animation.
|
|
49
|
-
* @returns The animator.
|
|
50
|
-
*/
|
|
51
|
-
createAnimator(t, e, n, a) {
|
|
52
|
-
var o, l;
|
|
53
|
-
const s = new w(t, e, n, a);
|
|
54
|
-
return this._callbackMap.set(s.uuid, {
|
|
55
|
-
onUpdate: ((o = s.options) == null ? void 0 : o.onUpdate) ?? (() => {
|
|
56
|
-
}),
|
|
57
|
-
onComplete: ((l = s.options) == null ? void 0 : l.onComplete) ?? (() => {
|
|
58
|
-
})
|
|
59
|
-
}), this._setupTween(s), s;
|
|
60
|
-
}
|
|
61
|
-
unregister(t) {
|
|
62
|
-
if (!this._callbackMap.has(t)) {
|
|
63
|
-
console.warn(`Animator with uuid ${t} not registered`);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
this._callbackMap.delete(t), this._tweens.delete(t);
|
|
67
|
-
}
|
|
68
|
-
dispose() {
|
|
69
|
-
this._callbackMap.clear(), this._tweens.clear();
|
|
70
|
-
}
|
|
71
|
-
tick() {
|
|
72
|
-
u();
|
|
73
|
-
}
|
|
74
|
-
animate(t) {
|
|
75
|
-
return new r(t);
|
|
76
|
-
}
|
|
77
|
-
_setupTween(t) {
|
|
78
|
-
var n;
|
|
79
|
-
const e = new r(t.object).to(t.to, t.duration).easing(((n = t.options) == null ? void 0 : n.easing) ?? _.Quadratic.Out).onUpdate((a, s) => {
|
|
80
|
-
var o;
|
|
81
|
-
(o = this._callbackMap.get(t.uuid)) == null || o.onUpdate(a, s);
|
|
82
|
-
}).onComplete((a) => {
|
|
83
|
-
var s;
|
|
84
|
-
(s = this._callbackMap.get(t.uuid)) == null || s.onComplete(a);
|
|
85
|
-
});
|
|
86
|
-
t.addEventListener("play", () => {
|
|
87
|
-
e.start();
|
|
88
|
-
}), t.addEventListener("stop", () => {
|
|
89
|
-
e.stop();
|
|
90
|
-
}), this._tweens.set(t.uuid, e);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
export {
|
|
94
|
-
M as AnimationSystem
|
|
95
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var u=Object.defineProperty;var d=(a,e,t)=>e in a?u(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var l=(a,e,t)=>d(a,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../systeminfo/SystemInfo.cjs"),s=require("../../../chunks/index-MNP0K5dt.cjs"),m=require("../asset/converter/AssetConverter.cjs"),h=require("../asset/loader/AssetLoader.cjs"),y=require("../asset/exporter/AssetExporter.cjs");class S{constructor(){l(this,"converter",new m.AssetConverter(new h.AssetLoader,new y.AssetExporter))}async launch(e,t){const r=await this.convertToUSDZ(e,t);return this.launchARQuickLook(r,t)}async convertToUSDZ(e,t){const r=await this.converter.convert(e).to("usdz",{quickLookCompatible:!0,ar:{anchoring:{type:"plane"},planeAnchoring:{alignment:(t==null?void 0:t.arPlacement)==="vertical"?"vertical":"horizontal"}}}),n=new Blob([r],{type:"model/vnd.usdz+zip"});return URL.createObjectURL(n)}launchARQuickLook(e,t){return new Promise(r=>{(t==null?void 0:t.arScale)==="fixed"&&(e=e.concat("#allowsContentScaling=0"));const n=document.createElement("a");n.innerHTML="<picture></picture>",n.rel="ar",n.href=e,n.download="scene.usdz",r(),n.click()})}}class _{launch(e,t){const r=self.location.toString(),n=document.createElement("a"),c=this._createParams(r,e,t),o=this._createIntent(r,e,c);n.setAttribute("href",o),n.click()}_createParams(e,t,r){const n=new URL(t,e),c=new URLSearchParams(n.search);return c.set("mode","ar_preferred"),this._applyScaleOption(c,r),this._applyPlacementOption(c,r),this._applySoundOption(c,e),this._applyLinkOption(c,e),c}_applyScaleOption(e,t){(t==null?void 0:t.arScale)==="fixed"&&e.set("resizable","false")}_applyPlacementOption(e,t){(t==null?void 0:t.arPlacement)==="vertical"&&e.set("enable_vertical_placement","true")}_applySoundOption(e,t){if(e.has("sound")){const r=new URL(e.get("sound"),t);e.set("sound",r.toString())}}_applyLinkOption(e,t){if(e.has("link")){const r=new URL(e.get("link"),t);e.set("link",r.toString())}}_createIntent(e,t,r){const n=new URL(e),c=new URL(t,e),o="#model-viewer-no-ar-fallback";return n.hash=o,`intent://arvr.google.com/scene-viewer/1.2?${r.toString()+"&file="+c.toString()}#Intent;scheme=https;package=com.google.android.googlequicksearchbox;action=android.intent.action.VIEW;S.browser_fallback_url=${encodeURIComponent(n.toString())};end;`}}class w{async launch(e,t){const r=i.SystemInfo.getSystem();return r===s.ESystem.IOS?this.tryARQuickLook(e,t):r===s.ESystem.ANDROID?this.trySceneViewer(e,t):Promise.reject(new s.ARCompatibilityError("AR not supported on non-mobile systems",window.navigator.userAgent,window.navigator.platform,window.navigator.vendor))}async tryARQuickLook(e,t){try{i.SystemInfo.getSupportsARQuickLook()}catch(r){return Promise.reject(r)}return new S().launch(e,t)}async trySceneViewer(e,t){try{return new _().launch(e,t)}catch(r){return Promise.reject(r)}}}exports.ARSystem=w;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface ModuleClasses {
|
|
3
|
-
ARSystem: typeof ARSystem;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* @module ARSystem
|
|
8
|
-
*
|
|
9
|
-
* The AR module enables Augmented Reality features across different platforms:
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* import { ARSystem } from '@shopware-ag/dive/modules/ARSystem';
|
|
13
|
-
*
|
|
14
|
-
* const arSystem = new ARSystem();
|
|
15
|
-
*
|
|
16
|
-
* // Launch AR with options
|
|
17
|
-
* await arSystem.launch('path/to/model.glb', {
|
|
18
|
-
* arPlacement: 'horizontal', // or 'vertical'
|
|
19
|
-
* arScale: 'auto' // or 'fixed'
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* Features:
|
|
24
|
-
* - Platform-specific AR implementations (ARQuickLook for iOS, SceneViewer for Android)
|
|
25
|
-
* - Automatic format conversion for AR compatibility
|
|
26
|
-
* - Configurable placement and scaling options
|
|
27
|
-
*/
|
|
28
|
-
/**
|
|
29
|
-
* Options for configuring the AR system behavior
|
|
30
|
-
*/
|
|
31
|
-
export type ARSystemOptions = {
|
|
32
|
-
/** The placement orientation for AR content - either horizontal or vertical */
|
|
33
|
-
arPlacement: 'horizontal' | 'vertical';
|
|
34
|
-
/** The scaling behavior for AR content - either automatic or fixed */
|
|
35
|
-
arScale: 'auto' | 'fixed';
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Main class for handling AR functionality across different platforms
|
|
39
|
-
* Provides methods to launch AR experiences using platform-specific implementations
|
|
40
|
-
*/
|
|
41
|
-
export declare class ARSystem {
|
|
42
|
-
/**
|
|
43
|
-
* Launches an AR experience using the appropriate platform-specific implementation
|
|
44
|
-
*
|
|
45
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
46
|
-
* @param options - Optional configuration for the AR experience
|
|
47
|
-
* @returns Promise that resolves when AR is launched successfully
|
|
48
|
-
* @throws Error if AR is not supported on the current platform
|
|
49
|
-
*/
|
|
50
|
-
launch(uri: string, options?: ARSystemOptions): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Attempts to launch AR using ARQuickLook (iOS-specific implementation)
|
|
53
|
-
*
|
|
54
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
55
|
-
* @param options - Optional configuration for the AR experience
|
|
56
|
-
* @returns Promise that resolves when ARQuickLook is launched successfully
|
|
57
|
-
* @throws Error if ARQuickLook is not supported on the device
|
|
58
|
-
*/
|
|
59
|
-
private tryARQuickLook;
|
|
60
|
-
/**
|
|
61
|
-
* Launches AR using SceneViewer (Android-specific implementation)
|
|
62
|
-
* Note: SceneViewer is supported on all Android devices. If ARCore is not installed,
|
|
63
|
-
* the model will be displayed in 3D view mode instead of AR mode.
|
|
64
|
-
*
|
|
65
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
66
|
-
* @param options - Optional configuration for the AR experience
|
|
67
|
-
* @returns Promise that resolves when SceneViewer is launched successfully
|
|
68
|
-
* @throws Error if there's an issue launching SceneViewer
|
|
69
|
-
*/
|
|
70
|
-
private trySceneViewer;
|
|
71
|
-
}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
var u = Object.defineProperty;
|
|
2
|
-
var m = (c, e, t) => e in c ? u(c, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[e] = t;
|
|
3
|
-
var i = (c, e, t) => m(c, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { SystemInfo as l } from "../systeminfo/SystemInfo.mjs";
|
|
5
|
-
import { E as s, A as d } from "../../../chunks/index-C7Wx_9uY.mjs";
|
|
6
|
-
import { AssetConverter as h } from "../asset/converter/AssetConverter.mjs";
|
|
7
|
-
import { AssetLoader as w } from "../asset/loader/AssetLoader.mjs";
|
|
8
|
-
import { AssetExporter as p } from "../asset/exporter/AssetExporter.mjs";
|
|
9
|
-
class y {
|
|
10
|
-
constructor() {
|
|
11
|
-
i(this, "converter", new h(
|
|
12
|
-
new w(),
|
|
13
|
-
new p()
|
|
14
|
-
));
|
|
15
|
-
}
|
|
16
|
-
async launch(e, t) {
|
|
17
|
-
const r = await this.convertToUSDZ(e, t);
|
|
18
|
-
return this.launchARQuickLook(r, t);
|
|
19
|
-
}
|
|
20
|
-
async convertToUSDZ(e, t) {
|
|
21
|
-
const r = await this.converter.convert(e).to("usdz", {
|
|
22
|
-
quickLookCompatible: !0,
|
|
23
|
-
ar: {
|
|
24
|
-
anchoring: { type: "plane" },
|
|
25
|
-
planeAnchoring: {
|
|
26
|
-
alignment: (t == null ? void 0 : t.arPlacement) === "vertical" ? "vertical" : "horizontal"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}), n = new Blob([r], { type: "model/vnd.usdz+zip" });
|
|
30
|
-
return URL.createObjectURL(n);
|
|
31
|
-
}
|
|
32
|
-
launchARQuickLook(e, t) {
|
|
33
|
-
return new Promise((r) => {
|
|
34
|
-
(t == null ? void 0 : t.arScale) === "fixed" && (e = e.concat("#allowsContentScaling=0"));
|
|
35
|
-
const n = document.createElement("a");
|
|
36
|
-
n.innerHTML = "<picture></picture>", n.rel = "ar", n.href = e, n.download = "scene.usdz", r(), n.click();
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
class S {
|
|
41
|
-
launch(e, t) {
|
|
42
|
-
const r = self.location.toString(), n = document.createElement("a"), a = this._createParams(r, e, t), o = this._createIntent(r, e, a);
|
|
43
|
-
n.setAttribute("href", o), n.click();
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Creates the base URL parameters for SceneViewer
|
|
47
|
-
* @param location Current page location URL
|
|
48
|
-
* @returns URLSearchParams with base configuration
|
|
49
|
-
*/
|
|
50
|
-
_createParams(e, t, r) {
|
|
51
|
-
const n = new URL(t, e), a = new URLSearchParams(n.search);
|
|
52
|
-
return a.set("mode", "ar_preferred"), this._applyScaleOption(a, r), this._applyPlacementOption(a, r), this._applySoundOption(a, e), this._applyLinkOption(a, e), a;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Applies the scale option to the parameters
|
|
56
|
-
* If scale is set to 'fixed', the model will not be resizable in AR
|
|
57
|
-
* @param params URLSearchParams to modify
|
|
58
|
-
*/
|
|
59
|
-
_applyScaleOption(e, t) {
|
|
60
|
-
(t == null ? void 0 : t.arScale) === "fixed" && e.set("resizable", "false");
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Applies the placement option to the parameters
|
|
64
|
-
* If placement is set to 'vertical', vertical placement will be enabled
|
|
65
|
-
* @param params URLSearchParams to modify
|
|
66
|
-
*/
|
|
67
|
-
_applyPlacementOption(e, t) {
|
|
68
|
-
(t == null ? void 0 : t.arPlacement) === "vertical" && e.set("enable_vertical_placement", "true");
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Applies the sound option to the parameters if present
|
|
72
|
-
* This will resolve any relative sound URLs to absolute URLs
|
|
73
|
-
* @param params URLSearchParams to modify
|
|
74
|
-
* @param location Current page location URL
|
|
75
|
-
*/
|
|
76
|
-
_applySoundOption(e, t) {
|
|
77
|
-
if (e.has("sound")) {
|
|
78
|
-
const r = new URL(e.get("sound"), t);
|
|
79
|
-
e.set("sound", r.toString());
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Applies the link option to the parameters if present
|
|
84
|
-
* This will resolve any relative link URLs to absolute URLs
|
|
85
|
-
* @param params URLSearchParams to modify
|
|
86
|
-
* @param location Current page location URL
|
|
87
|
-
*/
|
|
88
|
-
_applyLinkOption(e, t) {
|
|
89
|
-
if (e.has("link")) {
|
|
90
|
-
const r = new URL(e.get("link"), t);
|
|
91
|
-
e.set("link", r.toString());
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Creates the Android Intent URL for SceneViewer
|
|
96
|
-
* @param params URLSearchParams containing all configuration
|
|
97
|
-
* @param location Current page location URL
|
|
98
|
-
* @returns The complete Intent URL
|
|
99
|
-
*/
|
|
100
|
-
_createIntent(e, t, r) {
|
|
101
|
-
const n = new URL(e), a = new URL(t, e), o = "#model-viewer-no-ar-fallback";
|
|
102
|
-
return n.hash = o, `intent://arvr.google.com/scene-viewer/1.2?${r.toString() + "&file=" + a.toString()}#Intent;scheme=https;package=com.google.android.googlequicksearchbox;action=android.intent.action.VIEW;S.browser_fallback_url=${encodeURIComponent(
|
|
103
|
-
n.toString()
|
|
104
|
-
)};end;`;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
class A {
|
|
108
|
-
/**
|
|
109
|
-
* Launches an AR experience using the appropriate platform-specific implementation
|
|
110
|
-
*
|
|
111
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
112
|
-
* @param options - Optional configuration for the AR experience
|
|
113
|
-
* @returns Promise that resolves when AR is launched successfully
|
|
114
|
-
* @throws Error if AR is not supported on the current platform
|
|
115
|
-
*/
|
|
116
|
-
async launch(e, t) {
|
|
117
|
-
const r = l.getSystem();
|
|
118
|
-
return r === s.IOS ? this.tryARQuickLook(e, t) : r === s.ANDROID ? this.trySceneViewer(e, t) : Promise.reject(
|
|
119
|
-
new d(
|
|
120
|
-
"AR not supported on non-mobile systems",
|
|
121
|
-
window.navigator.userAgent,
|
|
122
|
-
window.navigator.platform,
|
|
123
|
-
window.navigator.vendor
|
|
124
|
-
)
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Attempts to launch AR using ARQuickLook (iOS-specific implementation)
|
|
129
|
-
*
|
|
130
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
131
|
-
* @param options - Optional configuration for the AR experience
|
|
132
|
-
* @returns Promise that resolves when ARQuickLook is launched successfully
|
|
133
|
-
* @throws Error if ARQuickLook is not supported on the device
|
|
134
|
-
*/
|
|
135
|
-
async tryARQuickLook(e, t) {
|
|
136
|
-
try {
|
|
137
|
-
l.getSupportsARQuickLook();
|
|
138
|
-
} catch (r) {
|
|
139
|
-
return Promise.reject(r);
|
|
140
|
-
}
|
|
141
|
-
return new y().launch(e, t);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Launches AR using SceneViewer (Android-specific implementation)
|
|
145
|
-
* Note: SceneViewer is supported on all Android devices. If ARCore is not installed,
|
|
146
|
-
* the model will be displayed in 3D view mode instead of AR mode.
|
|
147
|
-
*
|
|
148
|
-
* @param uri - The URI of the 3D model to display in AR
|
|
149
|
-
* @param options - Optional configuration for the AR experience
|
|
150
|
-
* @returns Promise that resolves when SceneViewer is launched successfully
|
|
151
|
-
* @throws Error if there's an issue launching SceneViewer
|
|
152
|
-
*/
|
|
153
|
-
async trySceneViewer(e, t) {
|
|
154
|
-
try {
|
|
155
|
-
return new S().launch(e, t);
|
|
156
|
-
} catch (r) {
|
|
157
|
-
return Promise.reject(r);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
export {
|
|
162
|
-
A as ARSystem
|
|
163
|
-
};
|