cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
2 lines (1 loc) • 3.67 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e=require("../../../build/three.module.js");const t=new e.Vector3,n=new e.Quaternion,s=new e.Vector3;class r extends e.Object3D{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}}const i=new e.Matrix4,l=new e.Matrix4;exports.CSS3DObject=r,exports.CSS3DRenderer=class{constructor(e={}){const r=this;let o,a,c,d;const m={camera:{fov:0,style:""},objects:new WeakMap},p=void 0!==e.element?e.element:document.createElement("div");p.style.overflow="hidden",this.domElement=p;const h=document.createElement("div");h.style.transformOrigin="0 0",h.style.pointerEvents="none",p.appendChild(h);const u=document.createElement("div");function v(e){return Math.abs(e)<1e-10?0:e}function f(e){const t=e.elements;return"matrix3d("+v(t[0])+","+v(-t[1])+","+v(t[2])+","+v(t[3])+","+v(t[4])+","+v(-t[5])+","+v(t[6])+","+v(t[7])+","+v(t[8])+","+v(-t[9])+","+v(t[10])+","+v(t[11])+","+v(t[12])+","+v(-t[13])+","+v(t[14])+","+v(t[15])+")"}function y(e){const t=e.elements;return"translate(-50%,-50%)"+("matrix3d("+v(t[0])+","+v(t[1])+","+v(t[2])+","+v(t[3])+","+v(-t[4])+","+v(-t[5])+","+v(-t[6])+","+v(-t[7])+","+v(t[8])+","+v(t[9])+","+v(t[10])+","+v(t[11])+","+v(t[12])+","+v(t[13])+","+v(t[14])+","+v(t[15])+")")}function x(e,o,a,c){if(e.isCSS3DObject){const c=!0===e.visible&&!0===e.layers.test(a.layers);if(e.element.style.display=!0===c?"":"none",!0===c){let c;e.onBeforeRender(r,o,a),e.isCSS3DSprite?(i.copy(a.matrixWorldInverse),i.transpose(),0!==e.rotation2D&&i.multiply(l.makeRotationZ(e.rotation2D)),e.matrixWorld.decompose(t,n,s),i.setPosition(t),i.scale(s),i.elements[3]=0,i.elements[7]=0,i.elements[11]=0,i.elements[15]=1,c=y(i)):c=y(e.matrixWorld);const d=e.element,p=m.objects.get(e);if(void 0===p||p.style!==c){d.style.transform=c;const t={style:c};m.objects.set(e,t)}d.parentNode!==u&&u.appendChild(d),e.onAfterRender(r,o,a)}}for(let t=0,n=e.children.length;t<n;t++)x(e.children[t],o,a)}u.style.transformStyle="preserve-3d",h.appendChild(u),this.getSize=function(){return{width:o,height:a}},this.render=function(e,t){const n=t.projectionMatrix.elements[5]*d;let s,r;m.camera.fov!==n&&(h.style.perspective=t.isPerspectiveCamera?n+"px":"",m.camera.fov=n),t.view&&t.view.enabled?(h.style.transform=`translate( ${-t.view.offsetX*(o/t.view.width)}px, ${-t.view.offsetY*(a/t.view.height)}px )`,h.style.transform+=`scale( ${t.view.fullWidth/t.view.width}, ${t.view.fullHeight/t.view.height} )`):h.style.transform="",!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===t.parent&&!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),t.isOrthographicCamera&&(s=-(t.right+t.left)/2,r=(t.top+t.bottom)/2);const i=t.view&&t.view.enabled?t.view.height/t.view.fullHeight:1,l=(t.isOrthographicCamera?`scale( ${i} )scale(`+n+")translate("+v(s)+"px,"+v(r)+"px)"+f(t.matrixWorldInverse):`scale( ${i} )translateZ(`+n+"px)"+f(t.matrixWorldInverse))+"translate("+c+"px,"+d+"px)";m.camera.style!==l&&(u.style.transform=l,m.camera.style=l),x(e,e,t)},this.setSize=function(e,t){o=e,a=t,c=o/2,d=a/2,p.style.width=e+"px",p.style.height=t+"px",h.style.width=e+"px",h.style.height=t+"px",u.style.width=e+"px",u.style.height=t+"px"}}};