@wannaby/wanna-sdk 3.4.0-alpha.3 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core.js +7 -7
- package/iframe.html +1 -1
- package/package.json +1 -1
package/core.js
CHANGED
|
@@ -2689,7 +2689,7 @@ return i.for_each_object((A=>{if(A.get_visible()){const i=t.compute_scene_object
|
|
|
2689
2689
|
g=e.aabb_unite(i,g)}})),g})(this.scene_view,this.lib)),this.draw(),this.sceneAnimations.tick(),this.sceneAnimations.hasRunningAnimations&&requestAnimationFrame(this.renderFrame),this.cameraControls.update(),this.first3dRenderSucceeded||(this.first3dRenderSucceeded=!0,this.logger.logEvent("log_3d_succeeded",this.modelId),this.emitter.emit(IA,{modelId:this.modelId}),this.fpsLogger.initLogFps(),this.fpsCounter.initCalcSessionFps())))})),Viewer3d_defineProperty(this,"getZoomToFitObject",(A=>{})),Viewer3d_defineProperty(this,"viewerSetPOI",(async A=>{const{cameras:e}=this.get3dModeModel(),t=e[A]
|
|
2690
2690
|
if(0!==A)return this.cameraControls.lookAtWithBounceAnimation(t.position,t.target)
|
|
2691
2691
|
const{target:i}=this.getDefaultCameraPositionAndTarget(),g=this.getCameraPositionToFitModelPOI({position:bi.A.sub(t.position,bi.A.sub(t.target,i)),target:i})
|
|
2692
|
-
return this.cameraControls.lookAtWithBounceAnimation(g,i)})),Viewer3d_defineProperty(this,"viewerCameraZoom",(async A=>this.cameraControls.zoomToDirection(A))),Viewer3d_defineProperty(this,"stopOnboarding",(()=>{this.animations.stopAll(),this.onboardingStopped=!0,this.cameraControls.orbitControls.off("start",this.stopOnboarding)})),this.viewKeypoints=!1,this.
|
|
2692
|
+
return this.cameraControls.lookAtWithBounceAnimation(g,i)})),Viewer3d_defineProperty(this,"viewerCameraZoom",(async A=>this.cameraControls.zoomToDirection(A))),Viewer3d_defineProperty(this,"stopOnboarding",(()=>{this.animations.stopAll(),this.onboardingStopped=!0,this.cameraControls.orbitControls.off("start",this.stopOnboarding)})),this.viewKeypoints=!1,this.enableDoubleClick=A.enableDoubleClick,this.setViewerSize(A.viewer3dSize)}setViewerSize(A){this.viewerSize={width:Math.max(1,A.width),height:Math.max(1,A.height)}}async getResourcesFromLoader(A){let{modelLoader:e,loadContext:t}=A
|
|
2693
2693
|
const i=await this.getObjectsFromLoader(e,Ri,t)
|
|
2694
2694
|
let[g,r]=i
|
|
2695
2695
|
if(!g&&!r)throw new Error("Unable to get left or right model")
|
|
@@ -2719,7 +2719,7 @@ if(i){const e=getNodesByNames(A,[Qg.DIMENSIONS_CM,Qg.DIMENSIONS_INCH])
|
|
|
2719
2719
|
s=[...s,...e]}const n=getUnitedBoundingBox(A,s,this.scene_view.get_scene_transform(),this.lib),B=2*((i?114:0)+.05*r),C=.1*g,E=this.cameraControls.getDistanceToFitBoundingBox(e,t,n,B,C)
|
|
2720
2720
|
return this.cameraControls.updateSceneTransformations(o,I),this.cameraControls.getPositionOnDistance(e,t,Math.min(E,a))}))}getDefaultCameraPositionAndTarget(){const{modelCenter:A}=this.get3dModeModel()
|
|
2721
2721
|
return{position:bi.A.add([1,0,0],A),target:A}}apply3dModeResolution(A){const{width:e,height:t}=A
|
|
2722
|
-
this.configureRenderTarget(A),this.debug&&this.emitter.emit(BA,{viewerDebug:{resolution:{width:e,height:t}}})}reset3dModeSize(A){if((0,Ei.l7)(this.viewerSize,A)||
|
|
2722
|
+
this.configureRenderTarget(A),this.debug&&this.emitter.emit(BA,{viewerDebug:{resolution:{width:e,height:t}}})}reset3dModeSize(A){if((0,Ei.l7)(this.viewerSize,A)||this.setViewerSize(A),this.camera){const e=this.get3dModeResolution()
|
|
2723
2723
|
this.apply3dModeResolution(e),this.cameraControls.setViewerSize(A),this.camera=this.cameraControls.getRenderCamera(),this.requestRender3dModeFrame()}}_get3dModeBackground(){let A=document.getElementsByClassName("current-background")[0]
|
|
2724
2724
|
if(!A){const[e]=getBackgroundCanvases()
|
|
2725
2725
|
this.renderBackground(e),A=e}const{width:e,height:t}=this.viewerSize
|
|
@@ -2753,8 +2753,8 @@ getNodeByName(A,Qg.MAIN)&&A.access_each_node((A=>{[Qg.MAIN,Qg.PLANE_AO].includes
|
|
|
2753
2753
|
const e=getNodesByNames(A,[Qg.PLANE_AO])
|
|
2754
2754
|
setNodesBlendingState(e,this.lib,!0)}disposeSceneForOcclusions(){}cancelRenderFrame(){this.requestedRenderFrame&&(cancelAnimationFrame(this.requestedRenderFrame),this.requestedRenderFrame=null)}unloadScene(){this.animations&&this.stopOnboarding(),this.cancelRenderFrame(),super.unloadScene(),this.currentModelId=null,this.viewerModelInfo=null,this.destroyControls()}destroyControls(){this.cameraControls&&(this.cameraControls.off("change",this.requestRender3dModeFrame),this.cameraControls.dispose())}applyDebugSettings(A){if(!this.debug||!this.camera)return
|
|
2755
2755
|
const{name:e,value:t}=A
|
|
2756
|
-
switch(e){case"width":case"height":{const A=this.get3dModeResolution()
|
|
2757
|
-
return void(A[e]!==
|
|
2756
|
+
switch(e){case"width":case"height":{const A=this.get3dModeResolution(),i=Math.max(1,Number(t))
|
|
2757
|
+
return void(A[e]!==i&&(A[e]=i,this.apply3dModeResolution(A),this.requestRender3dModeFrame()))}case"playAnimation":{this.debugAnimationEnabled=t,this.cameraControls.orbitControls.enabled=!t
|
|
2758
2758
|
const runDebugAnimation=async()=>{const{modelLength:A,modelCenter:e}=this.get3dModeModel(),t=[[2*A,.5*A,2*A],[.5*-A,.5*A,.5*A],[2*A,.5*-A,2*A],[.5*A,.5*-A,.5*A],[2*A,.5*A,2*-A],[.5*A,.5*A,.5*-A]]
|
|
2759
2759
|
for(const A of t)await this.cameraControls.lookAtWithAnimation(A,e)
|
|
2760
2760
|
this.debugAnimationEnabled&&runDebugAnimation()}
|
|
@@ -3538,7 +3538,7 @@ if(!this.wasmLogger)return this.delayedEvents.push({eventFnName:A,params:t}),Pro
|
|
|
3538
3538
|
if(!this.wasmLogger[A])throw new Bt(`Event ${A} is not found`)
|
|
3539
3539
|
const g=this.wasmLogger[A](...t).catch((e=>{throw new Bt(`Failed to log event ${A}.`,{cause:e})}))
|
|
3540
3540
|
return this.addRequest(g),g}catch(e){throw new Bt(`Failed to log event ${A}.`,{cause:e})}}logEvent(A){try{for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i]
|
|
3541
|
-
this.logEventAsync(A,...t).catch((A=>_r.handleError(A)))}catch(A){_r.handleError(A)}}logError(A){this.logErrorObject(Bt.toObject(A))}logErrorObject(A){try{if(A.
|
|
3541
|
+
this.logEventAsync(A,...t).catch((A=>_r.handleError(A)))}catch(A){_r.handleError(A)}}logError(A){this.logErrorObject(Bt.toObject(A))}logErrorObject(A){try{if(A.rootCauseName===Ci)return void this.logEvent("log_camera_access_denied")
|
|
3542
3542
|
if(!this.wasmLogger)return void this.delayedErrors.push(A)
|
|
3543
3543
|
const e=A.stack||`${A.name}: ${A.message}`,t=A.errorId,i=A.params||{}
|
|
3544
3544
|
this.debug&&(console.error("----------logging-error:",t),console.error(e),console.error("-----------error-params:",i),console.error("------------------------")),this.addRequest(this.wasmLogger.log_error(e,t,i).catch((A=>{throw new Bt(`Failed to log error id=${t}.`,{cause:A})})))}catch(A){this.debug&&console.error(A)}}async waitForAllLogsSent(){return new Promise((A=>{if(0===this.requestsList.length)return A()
|
|
@@ -3899,9 +3899,9 @@ if(this.mode===Ze)g=t,r=i
|
|
|
3899
3899
|
else if(A&&e){const o=((A,e)=>{var{width:t,height:i}=A,{width:g,height:r}=e
|
|
3900
3900
|
return Math.max(t/g,i/r)})({width:t,height:i},{width:A,height:e})
|
|
3901
3901
|
g=Math.round(A*o),r=Math.round(e*o)}return{width:g,height:r}}_handleVtoWindowResize(){const{width:A,height:e}=this.videoSize
|
|
3902
|
-
this.recalcDimensions({videoWidth:A,videoHeight:e})}_handle3dWindowResize(){var A,e
|
|
3902
|
+
this.recalcDimensions({videoWidth:A,videoHeight:e})}_handle3dWindowResize(){try{var A,e
|
|
3903
3903
|
const t=getAvailableSize(Po)
|
|
3904
|
-
null===(A=Lr.renderStep)||void 0===A||null===(A=A.realRenderStep)||void 0===A||null===(e=A.reset3dModeSize)||void 0===e||e.call(A,t),this.recalcDimensions()}async setupVideoAutoplay(){utils_video_useAutoPlayClickVideo()&&await wi({playButton:jo,video:Ko})}async setVideoSource(A){let{src:e,stream:t}=A
|
|
3904
|
+
null===(A=Lr.renderStep)||void 0===A||null===(A=A.realRenderStep)||void 0===A||null===(e=A.reset3dModeSize)||void 0===e||e.call(A,t),this.recalcDimensions()}catch(A){_r.handleError(new Bt(`Failed to resize viewer to ${Ho.innerWidth}x${Ho.innerHeight}`,{cause:A}))}}async setupVideoAutoplay(){utils_video_useAutoPlayClickVideo()&&await wi({playButton:jo,video:Ko})}async setVideoSource(A){let{src:e,stream:t}=A
|
|
3905
3905
|
if(!this.isRecordVideoMode){if(t)this.setVideoElementStream(t)
|
|
3906
3906
|
else{if(!e)throw new Error("No source for video is set.")
|
|
3907
3907
|
Ko.src!==e&&(this.killStream(),Ko.loop=!0,Ko.crossOrigin="anonymous",Ko.disablePictureInPicture=!0,Ko.src=e)}await this.setupVideoAutoplay()}}getMode(){return this.mode}async debug(A){if(!this.debugger.handleDebug(A))return Lr.reInit(A)}async setPOI(A){if(this.mode!==Ze)throw new Error("setPOI only available in 3D mode")
|
package/iframe.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!-- Copyright © 2024 WANNABY INC. All rights reserved. --><!doctype html><html><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><title>WANNABY / WEB-AR</title><meta name="description" content="WANNA WEB-AR"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="mobile-web-app-capable" content="yes"><style>body,html{height:100%;margin:0;padding:0}*{touch-action:none}.wrapper{height:100%;position:relative;overflow:hidden}#background-canvases,#debug-canvases,#interactions-layer,.wrapper canvas,.wrapper video{height:100%;width:100%}#canvases-wrapper{width:100%;height:100%;display:grid;grid-auto-columns:1fr;align-content:center;justify-content:center}#canvases-wrapper>*{position:relative;grid-column-start:1;grid-row-start:1}#debug-canvases{display:flex;flex-direction:column;gap:20px}#debug-canvases>div>canvas{position:absolute}#background-canvases{z-index:-1}#debug-canvases,#debug-overlay>canvas,#interactions-layer{position:absolute;top:0;left:0}#interactions-layer{user-select:none;-webkit-user-select:none}#background-canvases canvas:not(.current-background){display:none}#debug{position:absolute;top:200px;right:0;bottom:0;min-width:220px;max-height:calc(100% - 300px);overflow:auto;color:#fff;padding:5px;text-align:right}#debug,#debug *{touch-action:pan-x pan-y}#debug>div{padding:0 5px}.has-substeps>span{font-weight:700}.has-substeps{border:1px solid;margin:5px 0}video{opacity:0;position:absolute;top:0;z-index:-1}.video-mirrored{transform:scaleX(-1)}.video-visible{opacity:1}#screen-loading-stub{width:100%;height:100%;display:none;background:#fff;position:absolute;top:0;left:0;right:0;bottom:0;z-index:99}#play-button{display:none;position:absolute;top:50%;right:0;background-color:transparent;color:transparent;outline:0;border:none}@media (orientation:landscape){.desktopWrapper.arWrapper canvas,.desktopWrapper.arWrapper video{height:100%;width:auto}.desktopWrapper.arWrapper #debug{color:#000}.desktopWrapper.arWrapper #debug>*{border-color:#000}}</style><script defer="defer" src="./core.js?
|
|
1
|
+
<!-- Copyright © 2024 WANNABY INC. All rights reserved. --><!doctype html><html><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><title>WANNABY / WEB-AR</title><meta name="description" content="WANNA WEB-AR"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="mobile-web-app-capable" content="yes"><style>body,html{height:100%;margin:0;padding:0}*{touch-action:none}.wrapper{height:100%;position:relative;overflow:hidden}#background-canvases,#debug-canvases,#interactions-layer,.wrapper canvas,.wrapper video{height:100%;width:100%}#canvases-wrapper{width:100%;height:100%;display:grid;grid-auto-columns:1fr;align-content:center;justify-content:center}#canvases-wrapper>*{position:relative;grid-column-start:1;grid-row-start:1}#debug-canvases{display:flex;flex-direction:column;gap:20px}#debug-canvases>div>canvas{position:absolute}#background-canvases{z-index:-1}#debug-canvases,#debug-overlay>canvas,#interactions-layer{position:absolute;top:0;left:0}#interactions-layer{user-select:none;-webkit-user-select:none}#background-canvases canvas:not(.current-background){display:none}#debug{position:absolute;top:200px;right:0;bottom:0;min-width:220px;max-height:calc(100% - 300px);overflow:auto;color:#fff;padding:5px;text-align:right}#debug,#debug *{touch-action:pan-x pan-y}#debug>div{padding:0 5px}.has-substeps>span{font-weight:700}.has-substeps{border:1px solid;margin:5px 0}video{opacity:0;position:absolute;top:0;z-index:-1}.video-mirrored{transform:scaleX(-1)}.video-visible{opacity:1}#screen-loading-stub{width:100%;height:100%;display:none;background:#fff;position:absolute;top:0;left:0;right:0;bottom:0;z-index:99}#play-button{display:none;position:absolute;top:50%;right:0;background-color:transparent;color:transparent;outline:0;border:none}@media (orientation:landscape){.desktopWrapper.arWrapper canvas,.desktopWrapper.arWrapper video{height:100%;width:auto}.desktopWrapper.arWrapper #debug{color:#000}.desktopWrapper.arWrapper #debug>*{border-color:#000}}</style><script defer="defer" src="./core.js?796507487bffd7653fbe"></script></head><body><div id="wrapper" class="wrapper"><div id="screen-loading-stub"></div><button id="play-button">play</button><div id="canvases-wrapper"><video autoplay muted playsinline id="video" aria-hidden="true"></video><div id="background-canvases"><canvas></canvas><canvas></canvas><canvas></canvas></div><canvas id="three-canvas"></canvas><div id="debug-overlay"></div></div><div id="debug-canvases"></div><div id="debug"></div><div id="interactions-layer"></div></div></body></html>
|