@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.
Files changed (3) hide show
  1. package/core.js +7 -7
  2. package/iframe.html +1 -1
  3. 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.showSegmentation=!1,this.enableDoubleClick=A.enableDoubleClick,this.viewerSize=A.viewer3dSize}async getResourcesFromLoader(A){let{modelLoader:e,loadContext:t}=A
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)||(this.viewerSize=A),this.camera){const e=this.get3dModeResolution()
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]!==Number(t)&&(A[e]=Number(t),this.apply3dModeResolution(A),this.requestRender3dModeFrame()))}case"playAnimation":{this.debugAnimationEnabled=t,this.cameraControls.orbitControls.enabled=!t
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.name===Ci)return void this.logEvent("log_camera_access_denied")
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?75bb0cbf9670b7106b56"></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>
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>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wannaby/wanna-sdk",
3
3
  "description": "Wanna WEB-AR SDK to import as package dependency",
4
- "version": "3.4.0-alpha.3",
4
+ "version": "3.4.1",
5
5
  "main": "./sdk/sdk.js",
6
6
  "license": "SEE LICENSE IN LICENSE.md"
7
7
  }