UNPKG

@inweb/viewer-three

Version:

JavaScript library for rendering CAD and BIM files in a browser using Three.js

2 lines (1 loc) 1.38 kB
!function(e,s){"object"==typeof exports&&"undefined"!=typeof module?s(require("three"),require("@inweb/viewer-three")):"function"==typeof define&&define.amd?define(["three","@inweb/viewer-three"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).THREE,e.ODA.Three)}(this,(function(e,s){"use strict";class t{constructor(s){this.syncHelper=()=>{if(this.axesHelper1.removeFromParent(),this.axesHelper1.dispose(),this.axesHelper2.removeFromParent(),this.axesHelper2.dispose(),this.viewer.extents.isEmpty())return;const s=this.viewer.extents.getSize(new e.Vector3).length(),t=this.viewer.extents.getCenter(new e.Vector3);this.axesHelper1=new e.AxesHelper(s),this.axesHelper1.position.copy(t),this.viewer.helpers.add(this.axesHelper1),this.axesHelper2=new e.AxesHelper(s),this.axesHelper2.position.set(0,0,0),this.viewer.helpers.add(this.axesHelper2)},this.axesHelper1=new e.AxesHelper,this.axesHelper2=new e.AxesHelper,this.viewer=s,this.viewer.addEventListener("geometryend",this.syncHelper),this.viewer.addEventListener("clear",this.syncHelper)}dispose(){this.axesHelper1.removeFromParent(),this.axesHelper1.dispose(),this.axesHelper2.removeFromParent(),this.axesHelper2.dispose(),this.viewer.removeEventListener("geometryend",this.syncHelper),this.viewer.removeEventListener("clear",this.syncHelper)}}s.components.registerComponent("AxesHelperComponent",(e=>new t(e)))}));