UNPKG

jr-util

Version:

这是MJR的JS工具库。定期更新

2 lines (1 loc) 2.41 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=(n,e="horizontal",a=1024)=>{const c=document.createElement("canvas"),t=c.getContext("2d");return c.width=a,c.height=a,t.translate(e==="horizontal"?a:0,e==="vertical"?a:0),t.scale(e==="horizontal"?-1:1,e==="vertical"?-1:1),t.drawImage(n,0,0,a,a),t.scale(1,1),t.translate(0,0),c},u=(n,e)=>new Promise((a,c)=>{new e.CubeTextureLoader().load(n,t=>{const r=t.source.data;return r[0]=i(r[0],"vertical"),r[1]=i(r[1],"vertical"),r[2]=i(r[2]),r[3]=i(r[3]),r[4]=i(r[4],"vertical"),r[5]=i(r[5],"vertical"),t.needsUpdate=!0,t.generateMipmaps=!1,t.wrapS=e.ClampToEdgeWrapping,t.wrapT=e.ClampToEdgeWrapping,a(t)})}),m=(n,e)=>new Promise((a,c)=>{new e.CubeTextureLoader().load(n,t=>{const r=t.source.data,o=[{i:0,img:i(r[0],"vertical")},{i:1,img:i(r[1],"vertical")},{i:2,img:i(r[2])},{i:3,img:i(r[3])},{i:4,img:i(r[4],"vertical")},{i:5,img:i(r[5],"vertical")}];return a(o)})}),d=n=>{const e=Math.floor(2*Math.PI*n),a=Math.floor(2*n);return{width:e,height:a}},M=(n,e,a,c)=>{n.children.length!==0&&n.children.forEach(t=>{try{const r=t.userData.id||"00001";if(!e)return;const o=e.querySelector(`#${r}`);if(o&&o.children.length>0){const s=new c.Vector3;s.copy(t.position),s.project(a);const l=(s.x*.5+.5)*window.innerWidth,h=(-s.y*.5+.5)*window.innerHeight;s.z<1&&s.z>-1?(o.children[0].style.left=`${l}px`,o.children[0].style.top=`${h}px`,o.children[0].style.display="block"):o.children[0].style.display="none"}}catch{}})},p=(n,e,a,c,t)=>{(Math.abs(e)>=t||Math.abs(e)===0)&&(e=1),e>0?e=t-e:e<0&&(e=Math.abs(e)+t);const r=Math.PI-n/a*2*Math.PI,o=Math.PI/2-e/c*Math.PI,s=t*Math.cos(o)*Math.sin(r),l=t*Math.sin(o),h=t*Math.cos(o)*Math.cos(r);return{x:s,y:l,z:h}},w=(n,e,a,c,t)=>{const r=d(c),o=p(e,a,r.width,r.height,c),s=new t.MeshBasicMaterial({color:16711680,transparent:!0,opacity:0,wireframe:!1}),l=new t.Mesh(new t.BoxGeometry(.1,.1,.1),s);return l.position.set(o.x,o.y,o.z),l.userData.id=n,l},g=(n,e)=>{if(!n||e.length===0)return;const a=e.shift();if(n&&n.source&&n.source.data){const{i:c,img:t}=a;n.source.data[c]=t,n.needsUpdate=!0}g(n,e)};exports.threeAddMovingCube=w;exports.threeCalculateRectangleSize=d;exports.threeFlipImage=i;exports.threeLoadTextureFunc=u;exports.threeLoadTextureFuncImages=m;exports.threePlaneToSphereSize=p;exports.threeUpdateCubeTextureFace=g;exports.threeUpdateLabelPosition=M;