shop-components 0.1.49 → 0.1.50
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/dist/shop-components.mjs
CHANGED
|
@@ -62209,7 +62209,7 @@ var hK = Object.defineProperty, uK = Object.getOwnPropertyDescriptor, Xv = (n, A
|
|
|
62209
62209
|
};
|
|
62210
62210
|
class fK extends Ie {
|
|
62211
62211
|
constructor() {
|
|
62212
|
-
super(), this._box3 = new ve(), this._line11 = new gf("长:"), this._line12 = new gf("宽:"), this._line13 = new gf("高:"), this._outline = new qS(0, 0), this._radius = 0, this._hasWidthConfig = !1, this._hasLengthConfig = !1, this._hasHeightConfig = !1, this.follow = "", this.followOrigin = 0, this.followScale = 1, this.originOffset = 0, this.translateCache = 0, this._changeSize = DR((A) => {
|
|
62212
|
+
super(), this._box3 = new ve(), this._line11 = new gf("长:"), this._line12 = new gf("宽:"), this._line13 = new gf("高:"), this._outline = new qS(0, 0), this._radius = 0, this._hasWidthConfig = !1, this._hasLengthConfig = !1, this._hasHeightConfig = !1, this.follow = "", this.followOrigin = 0, this.followScale = 1, this.originOffset = 0, this.translateCache = 0, this.head = 0, this.tail = 0, this._changeSize = DR((A) => {
|
|
62213
62213
|
this._line11.updateSize(A), this._line12.updateSize(A), this._line13.updateSize(A);
|
|
62214
62214
|
}, 100), this._change = () => {
|
|
62215
62215
|
if (!this._app)
|
|
@@ -62254,7 +62254,7 @@ class fK extends Ie {
|
|
|
62254
62254
|
if (!this._object)
|
|
62255
62255
|
return;
|
|
62256
62256
|
const e = this._object, { box: t, maxRadius: i, hasLength: r, hasHeight: s, hasWidth: o } = cS(e);
|
|
62257
|
-
this._hasWidthConfig = o, this._hasLengthConfig = r, this._hasHeightConfig = s, this._box3.copy(t), this._radius = i, this.follow && A && (this.originOffset = (this.followOrigin - A) * this.followScale), this._outline.update(this._radius), this._change();
|
|
62257
|
+
this.tail = Math.abs(t.min.x), this.head = Math.abs(t.max.x), this._hasWidthConfig = o, this._hasLengthConfig = r, this._hasHeightConfig = s, this._box3.copy(t), this._radius = i, this.follow && A && (this.originOffset = (this.followOrigin - A) * this.followScale), this._outline.update(this._radius), this._change();
|
|
62258
62258
|
const a = this._box3.min.x, l = this._box3.max.x, u = this._box3.min.z, c = this._box3.max.z, h = this._box3.min.y, f = this._box3.max.y;
|
|
62259
62259
|
let p = 0.3;
|
|
62260
62260
|
const m = new O(a, 0, u), d = new O(l, 0, u);
|
|
@@ -9840,7 +9840,7 @@ if (edgeAlpha == 0.0) {
|
|
|
9840
9840
|
`;function lj(n){const A=nv(n,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new uA},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new ve(0,0,0,0)},uTroikaClipRect:{value:new ve(0,0,0,0)},uTroikaDistanceOffset:{value:0},uTroikaOutlineOpacity:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new uA},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new KA},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new ce},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:rj,vertexTransform:sj,fragmentDefs:oj,fragmentColorTransform:aj,customRewriter({vertexShader:e,fragmentShader:t}){let i=/\buniform\s+vec3\s+diffuse\b/;return i.test(t)&&(t=t.replace(i,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),i.test(e)||(e=e.replace(g_,`uniform vec3 diffuse;
|
|
9841
9841
|
$&
|
|
9842
9842
|
vTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;
|
|
9843
|
-
`))),{vertexShader:e,fragmentShader:t}}});return A.transparent=!0,Object.defineProperties(A,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),A}const ov=new ti({color:16777215,side:ot,transparent:!0}),E_=8421504,L_=new zA,Hf=new O,av=new O,Ic=[],cj=new O,lv="+x+y";function O_(n){return Array.isArray(n)?n[0]:n}let q_=()=>{const n=new Te(new Kn(1,1),ov);return q_=()=>n,n},N_=()=>{const n=new Te(new Kn(1,1,32,1),ov);return N_=()=>n,n};const hj={type:"syncstart"},uj={type:"synccomplete"},B_=["font","fontSize","fontStyle","fontWeight","lang","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],fj=B_.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");class z_ extends Te{constructor(){const A=new nj;super(A,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.unicodeFontsURL=null,this.fontSize=.1,this.fontWeight="normal",this.fontStyle="normal",this.lang=null,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=E_,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=lv,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(A){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(A):(this._isSyncing=!0,this.dispatchEvent(hj),Qk({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||.1,fontWeight:this.fontWeight||"normal",fontStyle:this.fontStyle||"normal",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},e=>{this._isSyncing=!1,this._textRenderInfo=e,this.geometry.updateGlyphs(e.glyphBounds,e.glyphAtlasIndices,e.blockBounds,e.chunkedBounds,e.glyphColors);const t=this._queuedSyncs;t&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{t.forEach(i=>i&&i())})),this.dispatchEvent(uj),A&&A()})))}onBeforeRender(A,e,t,i,r,s){this.sync(),r.isTroikaTextMaterial&&this._prepareForRender(r),r._hadOwnSide=r.hasOwnProperty("side"),this.geometry.setSide(r._actualSide=r.side),r.side=Bt}onAfterRender(A,e,t,i,r,s){r._hadOwnSide?r.side=r._actualSide:delete r.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let A=this._derivedMaterial;const e=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=ov.clone());if((!A||A.baseMaterial!==e)&&(A=this._derivedMaterial=lj(e),e.addEventListener("dispose",function t(){e.removeEventListener("dispose",t),A.dispose()})),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let t=A._outlineMtl;return t||(t=A._outlineMtl=Object.create(A,{id:{value:A.id+.1}}),t.isTextOutlineMaterial=!0,t.depthWrite=!1,t.map=null,A.addEventListener("dispose",function i(){A.removeEventListener("dispose",i),t.dispose()})),[t,A]}else return A}set material(A){A&&A.isTroikaTextMaterial?(this._derivedMaterial=A,this._baseMaterial=A.baseMaterial):this._baseMaterial=A}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(A){this.geometry.detail=A}get curveRadius(){return this.geometry.curveRadius}set curveRadius(A){this.geometry.curveRadius=A}get customDepthMaterial(){return O_(this.material).getDepthMaterial()}get customDistanceMaterial(){return O_(this.material).getDistanceMaterial()}_prepareForRender(A){const e=A.isTextOutlineMaterial,t=A.uniforms,i=this.textRenderInfo;if(i){const{sdfTexture:o,blockBounds:a}=i;t.uTroikaSDFTexture.value=o,t.uTroikaSDFTextureSize.value.set(o.image.width,o.image.height),t.uTroikaSDFGlyphSize.value=i.sdfGlyphSize,t.uTroikaSDFExponent.value=i.sdfExponent,t.uTroikaTotalBounds.value.fromArray(a),t.uTroikaUseGlyphColors.value=!e&&!!i.glyphColors;let l=0,u=0,c=0,h,f,p,m=0,d=0;if(e){let{outlineWidth:y,outlineOffsetX:v,outlineOffsetY:w,outlineBlur:C,outlineOpacity:_}=this;l=this._parsePercent(y)||0,u=Math.max(0,this._parsePercent(C)||0),h=_,m=this._parsePercent(v)||0,d=this._parsePercent(w)||0}else c=Math.max(0,this._parsePercent(this.strokeWidth)||0),c&&(p=this.strokeColor,t.uTroikaStrokeColor.value.set(p??E_),f=this.strokeOpacity,f==null&&(f=1)),h=this.fillOpacity;t.uTroikaDistanceOffset.value=l,t.uTroikaPositionOffset.value.set(m,d),t.uTroikaBlurRadius.value=u,t.uTroikaStrokeWidth.value=c,t.uTroikaStrokeOpacity.value=f,t.uTroikaFillOpacity.value=h??1,t.uTroikaCurveRadius.value=this.curveRadius||0;let g=this.clipRect;if(g&&Array.isArray(g)&&g.length===4)t.uTroikaClipRect.value.fromArray(g);else{const y=(this.fontSize||.1)*100;t.uTroikaClipRect.value.set(a[0]-y,a[1]-y,a[2]+y,a[3]+y)}this.geometry.applyClipRect(t.uTroikaClipRect.value)}t.uTroikaSDFDebug.value=!!this.debugSDF,A.polygonOffset=!!this.depthOffset,A.polygonOffsetFactor=A.polygonOffsetUnits=this.depthOffset||0;const r=e?this.outlineColor||0:this.color;if(r==null)delete A.color;else{const o=A.hasOwnProperty("color")?A.color:A.color=new KA;(r!==o._input||typeof r=="object")&&o.set(o._input=r)}let s=this.orientation||lv;if(s!==A._orientation){let o=t.uTroikaOrient.value;s=s.replace(/[^-+xyz]/g,"");let a=s!==lv&&s.match(/^([-+])([xyz])([-+])([xyz])$/);if(a){let[,l,u,c,h]=a;Hf.set(0,0,0)[u]=l==="-"?1:-1,av.set(0,0,0)[h]=c==="-"?-1:1,L_.lookAt(cj,Hf.cross(av),av),o.setFromMatrix4(L_)}else o.identity();A._orientation=s}}_parsePercent(A){if(typeof A=="string"){let e=A.match(/^(-?[\d.]+)%$/),t=e?parseFloat(e[1]):NaN;A=(isNaN(t)?0:t/100)*this.fontSize}return A}localPositionToTextCoords(A,e=new uA){e.copy(A);const t=this.curveRadius;return t&&(e.x=Math.atan2(A.x,Math.abs(t)-Math.abs(A.z))*Math.abs(t)),e}worldPositionToTextCoords(A,e=new uA){return Hf.copy(A),this.localPositionToTextCoords(this.worldToLocal(Hf),e)}raycast(A,e){const{textRenderInfo:t,curveRadius:i}=this;if(t){const r=t.blockBounds,s=i?N_():q_(),o=s.geometry,{position:a,uv:l}=o.attributes;for(let u=0;u<l.count;u++){let c=r[0]+l.getX(u)*(r[2]-r[0]);const h=r[1]+l.getY(u)*(r[3]-r[1]);let f=0;i&&(f=i-Math.cos(c/i)*i,c=Math.sin(c/i)*i),a.setXYZ(u,c,h,f)}o.boundingSphere=this.geometry.boundingSphere,o.boundingBox=this.geometry.boundingBox,s.matrixWorld=this.matrixWorld,s.material.side=this.material.side,Ic.length=0,s.raycast(A,Ic);for(let u=0;u<Ic.length;u++)Ic[u].object=this,e.push(Ic[u])}}copy(A){const e=this.geometry;return super.copy(A),this.geometry=e,fj.forEach(t=>{this[t]=A[t]}),this}clone(){return new this.constructor().copy(this)}}B_.forEach(n=>{const A="_private_"+n;Object.defineProperty(z_.prototype,n,{get(){return this[A]},set(e){e!==this[A]&&(this[A]=e,this._needsSync=!0)}})});class Yf extends Ie{constructor(A,e=!0){super(),this._startWith=A,this._showText=e,this._line=new bl(new qe,new q1({color:"#666",scale:1,linewidth:2,dashSize:.03,gapSize:.02})),this._text=new z_,this._textWrapper=new It,this._line.frustumCulled=!1,this.add(this._line),this._showText&&(this._text.fontSize=.06,this._text.color="#666",this._text.textAlign="justify",this._text.anchorX="center",this._text.anchorY="bottom",this._text.lineHeight=1.8,this.add(this._textWrapper),this._textWrapper.add(this._text))}reset(){var A;(A=this._line.geometry)==null||A.dispose(),this._line.computeLineDistances()}update(A,e){var r;(r=this._line.geometry)==null||r.dispose(),this._line.geometry.setFromPoints([A,e]),this._line.computeLineDistances();const t=A.distanceTo(e);this._startWith?this._text.text=`${this._startWith}${(t*1e3).toFixed(0)} mm`:this._text.text=`${(t*1e3).toFixed(0)} mm`;const i=new O;i.addVectors(A,e).multiplyScalar(.5),this._textWrapper.position.copy(i),this._text.lookAt(e),this._text.rotateY(Math.PI/2),this._text.rotateX(-Math.PI/3),this._text.sync()}updateDirection(A){this._textWrapper.lookAt(A)}updateSize(A){var i;const e=(i=this.parent)==null?void 0:i.position.clone();e==null||e.setY(this.position.y);let t=(e==null?void 0:e.distanceTo(A))||1;t*=1.2,t<5&&(t=5),this._tw&&this._tw.isPlaying()&&this._tw.stop(),this._tw=new xs.Tween(this._text).to({fontSize:t/100}).duration(300).easing(xs.Easing.Quintic.InOut).start()}destroy(){this.children.forEach(A=>Si(A)),this.removeFromParent()}}class R_ extends Ie{constructor(A,e){super(),this.radius=A,this._text=new dj(""),this._line=new Yf(void 0,!1),this._box=new Te,this._box.geometry=new Xh(A,A+.003,128),this._box.material=new ti({color:"#898989",side:ot}),this.position.y=e,this._box.rotateX(-Math.PI/2),this.add(this._box),this.add(this._line),this.add(this._text)}hide(){this._text.hide(),this._line.visible=!1}show(){this._text.show(),this._line.visible=!0}update(A){var e;this.radius=A,(e=this._box.geometry)==null||e.dispose(),this._box.geometry=new Xh(A,A+.003,128),this._text.update((A*1e3).toFixed(0))}change(A){const e=A.clone();e.setY(0),e.normalize().multiplyScalar(this.radius),this._text.position.set(e.x,e.y,e.z),this._line.update(e,new O)}}class dj extends zg{constructor(A){const e=document.createElement("div");super(e),this._wrapper=document.createElement("div"),this._wrapper.style.fontSize="10px",this._wrapper.style.color="#898989",this._wrapper.style.whiteSpace="nowrap",this._wrapper.style.position="absolute",this._wrapper.style.transform="translateX(-50%)",this._wrapper.style.bottom="4px";const t=document.createElement("div");t.style.position="relative",t.style.zIndex="10",t.style.width=t.style.height="5px",t.style.borderRadius="50%",t.style.background="#ff6666",e.append(this._wrapper,t),this.update(A)}show(){this.element.style.display="block"}hide(){this.element.style.display="none"}update(A){this._wrapper.innerText="旋转半径:"+A+" mm"}}const cv="data:image/png;base64,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",pj="data:image/png;base64,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";class k_ extends zg{constructor(A,e){const t=document.createElement("div");super(t),this.props=A,this.amr=e,this._direction=1,this._controllingRotate=!1,this._controlling=!1,this._startAt=0,this._looper=0,this._initial=0,this._canRotate=!1,this._emitter=new br,this.addListener=this._emitter.addListener.bind(this._emitter),this.removeListener=this._emitter.removeListener.bind(this._emitter),this._update=()=>{if(this._looper=requestAnimationFrame(this._update),this._controlling){let s=(Date.now()-this._startAt)/200;s>4&&(s=4);let o=this._initial+.005*s*this._direction;if(o>this.props.max||o<this.props.min){this.mechanism&&(o<this.props.min?(this.mechanism.position.setY(this.props.min),this._emitter.emit("change",this.props.min)):o>this.props.max&&(this.mechanism.position.setY(this.props.max),this._emitter.emit("change",this.props.max)));return}if(this._initial=o,!this.mechanism)return;this.mechanism.position.setY(o),this._emitter.emit("change",o)}},A.userData&&A.userData.target&&(this.name=A.userData.target.name,e.traverse(s=>{s.name===A.userData.target.name&&(this.mechanism=s)})),t.style.fontSize="30px",t.style.color="#0066FF",t.style.cursor="pointer",t.style.pointerEvents="auto";const i=document.createElement("div");i.innerText="↑",i.style.position="absolute",i.style.left="0",i.style.transform="translateX(-50%)",i.style.marginBottom="5px",i.setAttribute("data-direction","up");const r=document.createElement("div");if(r.style.position="absolute",r.style.left="0",r.style.transform="translateX(-50%)",r.innerText="↓",i.style.bottom=r.style.top="8px",r.setAttribute("data-direction","down"),Array.from([i,r]).forEach(s=>{s.addEventListener("mousemove",()=>{s.style.color="#00FF95"}),s.addEventListener("mouseleave",()=>{s.style.color="#0066FF"}),s.addEventListener("pointerdown",()=>{this.mechanism&&(this._controlling=!0,this._startAt=Date.now(),this._initial=this.mechanism.position.y,this._direction=s.getAttribute("data-direction")==="up"?1:-1,this._update())}),s.addEventListener("pointerup",()=>{this._controlling=!1,cancelAnimationFrame(this._looper)}),s.addEventListener("pointerleave",()=>{this._controlling=!1,cancelAnimationFrame(this._looper)})}),A.userData&&(this._canRotate=A.userData.canRotate,this._canRotate)){const{rotateTarget:s,rotateDuration:o,rotateStep:a,rotateMax:l,rotateMin:u}=A.userData;let c;if(s&&(e.traverse(h=>{h.name===s.name&&(c=h)}),c)){const h=document.createElement("div");h.style.background=`url(${cv}) center no-repeat`,h.style.backgroundSize="100% auto",h.style.width=h.style.height="35px",h.style.position="absolute",h.style.top="0",h.style.transform="translateY(-50%) scaleX(-100%) rotateZ(-30deg) rotateX(-40deg)",h.style.marginBottom="5px",h.setAttribute("data-direction","left"),t.append(h);const f=document.createElement("div");f.style.background=`url(${cv}) center no-repeat`,f.style.backgroundSize="100% auto",f.style.width=f.style.height="35px",f.style.position="absolute",h.style.right=f.style.left="10px",f.style.top="0",f.style.transform="translateY(-50%) rotateZ(-30deg) rotateX(-40deg)",f.style.marginBottom="5px",f.setAttribute("data-direction","right"),t.append(f),Array.from([h,f]).forEach(p=>{p.addEventListener("mousemove",()=>{p.style.backgroundImage=`url(${pj})`}),p.addEventListener("mouseleave",()=>{p.style.backgroundImage=`url(${cv})`}),p.addEventListener("pointerdown",()=>{if(this._timer&&this._timer.isPlaying())return;this._controllingRotate=!0,this._startAt=Date.now(),this._direction=p.getAttribute("data-direction")==="left"?-1:1;let m=a/180*Math.PI*this._direction+c.rotation.y;m>l/180*Math.PI?m=l/180*Math.PI:m<u/180*Math.PI&&(m=u/180*Math.PI),this._timer=new bu(c.rotation).to({y:m}).duration(o).start(),this._update()}),p.addEventListener("pointerup",()=>{this._controllingRotate=!1,cancelAnimationFrame(this._looper)}),p.addEventListener("pointerleave",()=>{this._controllingRotate=!1,cancelAnimationFrame(this._looper)})})}}t.append(i,r),this.scale.set(.01,.01,.01),this.matrixAutoUpdate=!1,this.updateMatrix()}hide(){this.element.style.display="none",this.traverse(A=>A.visible=!1),this.visible=!1}show(){this.element.style.display="auto",this.traverse(A=>A.visible=!0),this.visible=!0}dispose(){this._emitter.removeAllListeners(),cancelAnimationFrame(this._looper),this.element.remove()}}new O,new O;class gj extends Ie{constructor(A=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=A,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&&e.element.parentNode!==null&&e.element.parentNode.removeChild(e.element)})})}copy(A,e){return super.copy(A,e),this.element=A.element.cloneNode(!0),this}}new zA,new zA;class mj extends gj{constructor(A){const e=document.createElement("div");super(e),this.props=A,this._scale=.01,this._emitter=new br,this.addEventListener=this._emitter.on.bind(this._emitter),this.removeEventListener=this._emitter.on.bind(this._emitter),this._mouseStart=new uA,this._targetSize=new uA,this._caches=[],this._sizeFlag="width",this._direction=1,this._lines=[],this._pointerdown=a=>{const{pageX:l,pageY:u}=a;this.endNode.setPointerCapture(a.pointerId),this._mouseStart.set(l,u),this._targetSize.setX(parseFloat(this.endNode.parentElement.style.width)),this._targetSize.setY(parseFloat(this.endNode.parentElement.style.height))},this._pointermove=a=>{if(!this._mouseStart.x)return;const{pageX:l,pageY:u}=a;let c=l-this._mouseStart.x,h=c+this._targetSize.x;this._sizeFlag==="height"&&(c=u-this._mouseStart.y,h=c*this._direction+this._targetSize.y);const f=h%10;h=h-f,c=(h-this._targetSize.x)*this._direction,this._sizeFlag==="height"&&(c=(h-this._targetSize.y)*this._direction),this._textNode.innerText=(h/100).toFixed(2)+" m",this.endNode.parentElement.style[this._sizeFlag]=`${h}px`},this._pointercancel=a=>{this.endNode.releasePointerCapture(a.pointerId),this._mouseStart.set(0,0)};const{start:t,end:i}=A,r=i.distanceTo(t);this.props.axios==="z"?this.props.axios="y":this.props.axios==="y"&&(this.props.axios="z"),this.props.axios==="y"&&(this._sizeFlag="height");const s=document.createElement("div");s.style.position="absolute",s.style.left="0",s.style.bottom="0",e.append(s),this._textNode=document.createElement("div"),this._textNode.innerText=r.toFixed(2)+" m",s.append(this._textNode);const o=document.createElement("div");this.endNode=o,o.style.position="absolute",o.style.left="auto",o.style.right="0",o.style.width="4px",o.style.height="4px",o.style.background="#0066FF",o.style.borderRadius="50%",o.style.margin="-2px -2px 0 0",o.style.cursor="pointer",s.append(o),this.scale.set(this._scale,this._scale,this._scale),e.style.fontSize="6px",e.style.color="#fff",s.style[this._sizeFlag]=r*100+"px",s.style.textAlign="center",this._sizeFlag==="height"?(s.style.borderLeft="0.1px dashed #fff",s.style.display="flex",s.style.alignItems="center",s.style.justifyContent="center",s.style.whiteSpace="nowrap",o.style.top="0",o.style.left="0",o.style.right="auto",o.style.margin="-2px 0 0 -2px"):s.style.borderBottom="0.1px dashed #fff",o.addEventListener("pointerdown",this._pointerdown),o.addEventListener("pointermove",this._pointermove),o.addEventListener("pointerup",this._pointercancel),i[this.props.axios]<t[this.props.axios]?this.rotateY(Math.PI):this._direction=-1}_getIndexByAxios(){return this.props.axios==="y"?1:this.props.axios==="z"?2:0}dispose(){this._lines.forEach(A=>A.dispose()),this._emitter.removeAllListeners(),this.endNode.removeEventListener("pointerdown",this._pointerdown),this.endNode.removeEventListener("pointermove",this._pointermove),this.endNode.removeEventListener("pointerup",this._pointercancel),this.element.remove(),this._caches.forEach(A=>A.clear()),this._caches=[]}}const vj="*{box-sizing:border-box}.pointer-container{width:20px;height:20px;pointer-events:auto;cursor:pointer;display:flex;align-items:center;justify-content:center}.pointer-container.active .point{transform:scale(3);background:#06f}.pointer-container:hover .point{transform:scale(4);background:#00ff95}.pointer-container:hover .value{opacity:1;transform:translate3d(-50%,0,0)}.pointer-container .point{width:3px;height:3px;border-radius:50%;background:#898989;transition:all .2s}.pointer-container .value{white-space:nowrap;pointer-events:none;font-size:12px;opacity:0;position:absolute;bottom:80%;left:50%;color:#898989;transform:translate3d(-50%,-14px,0);transition:all .2s}";var yj=Object.defineProperty,wj=Object.getOwnPropertyDescriptor,hv=(n,A,e,t)=>{for(var i=t>1?void 0:t?wj(A,e):A,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(A,e,i):s(i))||i);return t&&i&&yj(A,e,i),i};class Cj extends Ie{constructor(){super(),this._box3=new ye,this._line11=new Yf("长:"),this._line12=new Yf("宽:"),this._line13=new Yf("高:"),this._outline=new R_(0,0),this._radius=0,this._hasWidthConfig=!1,this._hasLengthConfig=!1,this._hasHeightConfig=!1,this.follow="",this.followOrigin=0,this.followScale=1,this.originOffset=0,this.translateCache=0,this._changeSize=z9(A=>{this._line11.updateSize(A),this._line12.updateSize(A),this._line13.updateSize(A)},100),this._change=()=>{if(!this._app)return;const A=this._app.camera;A&&(this._outline.change(A.position),this._changeSize(A.position),this._line13.updateDirection(A.position))},this.add(this._outline,this._line11,this._line12,this._line13)}get hasSizeConfig(){return{length:this._hasLengthConfig,width:this._hasWidthConfig,height:this._hasHeightConfig}}get size(){return this._box3.clone()}get radius(){return this._radius}init(A){this._app=A,this._app.controls.addEventListener("change",this._change)}reset(){this.hide()}generate(A,e=0){A&&(this._object=A),this.update(e)}show(){this.visible=!0,this._outline.visible=!0,this._outline.show(),this.traverse(A=>A.visible=!0)}hide(){this.visible=!1,this._outline.visible=!1,this._outline.hide(),this.traverse(A=>A.visible=!1)}destroy(){var A;(A=this._app)==null||A.controls.removeEventListener("change",this._change),this._line11.destroy(),this._line12.destroy(),this._line13.destroy()}update(A=0){if(!this._object)return;const e=this._object,{box:t,maxRadius:i,hasLength:r,hasHeight:s,hasWidth:o}=Pb(e);this._hasWidthConfig=o,this._hasLengthConfig=r,this._hasHeightConfig=s,this._box3.copy(t),this._radius=i,this.follow&&A&&(this.originOffset=(this.followOrigin-A)*this.followScale),this._outline.update(this._radius),this._change();const a=this._box3.min.x,l=this._box3.max.x,u=this._box3.min.z,c=this._box3.max.z,h=this._box3.min.y,f=this._box3.max.y;let p=.3;const m=new O(a,0,u),d=new O(l,0,u);this._line11.update(m.clone().sub(new O(0,0,p/1.8)),d.clone().sub(new O(0,0,p/1.8)));const g=new O(l,0,c);this._line12.update(d.clone().add(new O(p,0,0)),g.clone().add(new O(p,0,0)));const y=new O(a,h,u),v=new O(a,f,u),w=y.clone();w.z-=p/3;const C=v.clone();C.z-=p/3,this._line13.update(w,C)}}let bc=class extends Gr{constructor(n,A=!1){super(),this.text="",this.active=!1,this.text=(n*1e3).toFixed(0),this.active=A}render(){return An`
|
|
9843
|
+
`))),{vertexShader:e,fragmentShader:t}}});return A.transparent=!0,Object.defineProperties(A,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),A}const ov=new ti({color:16777215,side:ot,transparent:!0}),E_=8421504,L_=new zA,Hf=new O,av=new O,Ic=[],cj=new O,lv="+x+y";function O_(n){return Array.isArray(n)?n[0]:n}let q_=()=>{const n=new Te(new Kn(1,1),ov);return q_=()=>n,n},N_=()=>{const n=new Te(new Kn(1,1,32,1),ov);return N_=()=>n,n};const hj={type:"syncstart"},uj={type:"synccomplete"},B_=["font","fontSize","fontStyle","fontWeight","lang","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],fj=B_.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");class z_ extends Te{constructor(){const A=new nj;super(A,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.unicodeFontsURL=null,this.fontSize=.1,this.fontWeight="normal",this.fontStyle="normal",this.lang=null,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=E_,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=lv,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(A){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(A):(this._isSyncing=!0,this.dispatchEvent(hj),Qk({text:this.text,font:this.font,lang:this.lang,fontSize:this.fontSize||.1,fontWeight:this.fontWeight||"normal",fontStyle:this.fontStyle||"normal",letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF,unicodeFontsURL:this.unicodeFontsURL},e=>{this._isSyncing=!1,this._textRenderInfo=e,this.geometry.updateGlyphs(e.glyphBounds,e.glyphAtlasIndices,e.blockBounds,e.chunkedBounds,e.glyphColors);const t=this._queuedSyncs;t&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{t.forEach(i=>i&&i())})),this.dispatchEvent(uj),A&&A()})))}onBeforeRender(A,e,t,i,r,s){this.sync(),r.isTroikaTextMaterial&&this._prepareForRender(r),r._hadOwnSide=r.hasOwnProperty("side"),this.geometry.setSide(r._actualSide=r.side),r.side=Bt}onAfterRender(A,e,t,i,r,s){r._hadOwnSide?r.side=r._actualSide:delete r.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let A=this._derivedMaterial;const e=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=ov.clone());if((!A||A.baseMaterial!==e)&&(A=this._derivedMaterial=lj(e),e.addEventListener("dispose",function t(){e.removeEventListener("dispose",t),A.dispose()})),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let t=A._outlineMtl;return t||(t=A._outlineMtl=Object.create(A,{id:{value:A.id+.1}}),t.isTextOutlineMaterial=!0,t.depthWrite=!1,t.map=null,A.addEventListener("dispose",function i(){A.removeEventListener("dispose",i),t.dispose()})),[t,A]}else return A}set material(A){A&&A.isTroikaTextMaterial?(this._derivedMaterial=A,this._baseMaterial=A.baseMaterial):this._baseMaterial=A}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(A){this.geometry.detail=A}get curveRadius(){return this.geometry.curveRadius}set curveRadius(A){this.geometry.curveRadius=A}get customDepthMaterial(){return O_(this.material).getDepthMaterial()}get customDistanceMaterial(){return O_(this.material).getDistanceMaterial()}_prepareForRender(A){const e=A.isTextOutlineMaterial,t=A.uniforms,i=this.textRenderInfo;if(i){const{sdfTexture:o,blockBounds:a}=i;t.uTroikaSDFTexture.value=o,t.uTroikaSDFTextureSize.value.set(o.image.width,o.image.height),t.uTroikaSDFGlyphSize.value=i.sdfGlyphSize,t.uTroikaSDFExponent.value=i.sdfExponent,t.uTroikaTotalBounds.value.fromArray(a),t.uTroikaUseGlyphColors.value=!e&&!!i.glyphColors;let l=0,u=0,c=0,h,f,p,m=0,d=0;if(e){let{outlineWidth:y,outlineOffsetX:v,outlineOffsetY:w,outlineBlur:C,outlineOpacity:_}=this;l=this._parsePercent(y)||0,u=Math.max(0,this._parsePercent(C)||0),h=_,m=this._parsePercent(v)||0,d=this._parsePercent(w)||0}else c=Math.max(0,this._parsePercent(this.strokeWidth)||0),c&&(p=this.strokeColor,t.uTroikaStrokeColor.value.set(p??E_),f=this.strokeOpacity,f==null&&(f=1)),h=this.fillOpacity;t.uTroikaDistanceOffset.value=l,t.uTroikaPositionOffset.value.set(m,d),t.uTroikaBlurRadius.value=u,t.uTroikaStrokeWidth.value=c,t.uTroikaStrokeOpacity.value=f,t.uTroikaFillOpacity.value=h??1,t.uTroikaCurveRadius.value=this.curveRadius||0;let g=this.clipRect;if(g&&Array.isArray(g)&&g.length===4)t.uTroikaClipRect.value.fromArray(g);else{const y=(this.fontSize||.1)*100;t.uTroikaClipRect.value.set(a[0]-y,a[1]-y,a[2]+y,a[3]+y)}this.geometry.applyClipRect(t.uTroikaClipRect.value)}t.uTroikaSDFDebug.value=!!this.debugSDF,A.polygonOffset=!!this.depthOffset,A.polygonOffsetFactor=A.polygonOffsetUnits=this.depthOffset||0;const r=e?this.outlineColor||0:this.color;if(r==null)delete A.color;else{const o=A.hasOwnProperty("color")?A.color:A.color=new KA;(r!==o._input||typeof r=="object")&&o.set(o._input=r)}let s=this.orientation||lv;if(s!==A._orientation){let o=t.uTroikaOrient.value;s=s.replace(/[^-+xyz]/g,"");let a=s!==lv&&s.match(/^([-+])([xyz])([-+])([xyz])$/);if(a){let[,l,u,c,h]=a;Hf.set(0,0,0)[u]=l==="-"?1:-1,av.set(0,0,0)[h]=c==="-"?-1:1,L_.lookAt(cj,Hf.cross(av),av),o.setFromMatrix4(L_)}else o.identity();A._orientation=s}}_parsePercent(A){if(typeof A=="string"){let e=A.match(/^(-?[\d.]+)%$/),t=e?parseFloat(e[1]):NaN;A=(isNaN(t)?0:t/100)*this.fontSize}return A}localPositionToTextCoords(A,e=new uA){e.copy(A);const t=this.curveRadius;return t&&(e.x=Math.atan2(A.x,Math.abs(t)-Math.abs(A.z))*Math.abs(t)),e}worldPositionToTextCoords(A,e=new uA){return Hf.copy(A),this.localPositionToTextCoords(this.worldToLocal(Hf),e)}raycast(A,e){const{textRenderInfo:t,curveRadius:i}=this;if(t){const r=t.blockBounds,s=i?N_():q_(),o=s.geometry,{position:a,uv:l}=o.attributes;for(let u=0;u<l.count;u++){let c=r[0]+l.getX(u)*(r[2]-r[0]);const h=r[1]+l.getY(u)*(r[3]-r[1]);let f=0;i&&(f=i-Math.cos(c/i)*i,c=Math.sin(c/i)*i),a.setXYZ(u,c,h,f)}o.boundingSphere=this.geometry.boundingSphere,o.boundingBox=this.geometry.boundingBox,s.matrixWorld=this.matrixWorld,s.material.side=this.material.side,Ic.length=0,s.raycast(A,Ic);for(let u=0;u<Ic.length;u++)Ic[u].object=this,e.push(Ic[u])}}copy(A){const e=this.geometry;return super.copy(A),this.geometry=e,fj.forEach(t=>{this[t]=A[t]}),this}clone(){return new this.constructor().copy(this)}}B_.forEach(n=>{const A="_private_"+n;Object.defineProperty(z_.prototype,n,{get(){return this[A]},set(e){e!==this[A]&&(this[A]=e,this._needsSync=!0)}})});class Yf extends Ie{constructor(A,e=!0){super(),this._startWith=A,this._showText=e,this._line=new bl(new qe,new q1({color:"#666",scale:1,linewidth:2,dashSize:.03,gapSize:.02})),this._text=new z_,this._textWrapper=new It,this._line.frustumCulled=!1,this.add(this._line),this._showText&&(this._text.fontSize=.06,this._text.color="#666",this._text.textAlign="justify",this._text.anchorX="center",this._text.anchorY="bottom",this._text.lineHeight=1.8,this.add(this._textWrapper),this._textWrapper.add(this._text))}reset(){var A;(A=this._line.geometry)==null||A.dispose(),this._line.computeLineDistances()}update(A,e){var r;(r=this._line.geometry)==null||r.dispose(),this._line.geometry.setFromPoints([A,e]),this._line.computeLineDistances();const t=A.distanceTo(e);this._startWith?this._text.text=`${this._startWith}${(t*1e3).toFixed(0)} mm`:this._text.text=`${(t*1e3).toFixed(0)} mm`;const i=new O;i.addVectors(A,e).multiplyScalar(.5),this._textWrapper.position.copy(i),this._text.lookAt(e),this._text.rotateY(Math.PI/2),this._text.rotateX(-Math.PI/3),this._text.sync()}updateDirection(A){this._textWrapper.lookAt(A)}updateSize(A){var i;const e=(i=this.parent)==null?void 0:i.position.clone();e==null||e.setY(this.position.y);let t=(e==null?void 0:e.distanceTo(A))||1;t*=1.2,t<5&&(t=5),this._tw&&this._tw.isPlaying()&&this._tw.stop(),this._tw=new xs.Tween(this._text).to({fontSize:t/100}).duration(300).easing(xs.Easing.Quintic.InOut).start()}destroy(){this.children.forEach(A=>Si(A)),this.removeFromParent()}}class R_ extends Ie{constructor(A,e){super(),this.radius=A,this._text=new dj(""),this._line=new Yf(void 0,!1),this._box=new Te,this._box.geometry=new Xh(A,A+.003,128),this._box.material=new ti({color:"#898989",side:ot}),this.position.y=e,this._box.rotateX(-Math.PI/2),this.add(this._box),this.add(this._line),this.add(this._text)}hide(){this._text.hide(),this._line.visible=!1}show(){this._text.show(),this._line.visible=!0}update(A){var e;this.radius=A,(e=this._box.geometry)==null||e.dispose(),this._box.geometry=new Xh(A,A+.003,128),this._text.update((A*1e3).toFixed(0))}change(A){const e=A.clone();e.setY(0),e.normalize().multiplyScalar(this.radius),this._text.position.set(e.x,e.y,e.z),this._line.update(e,new O)}}class dj extends zg{constructor(A){const e=document.createElement("div");super(e),this._wrapper=document.createElement("div"),this._wrapper.style.fontSize="10px",this._wrapper.style.color="#898989",this._wrapper.style.whiteSpace="nowrap",this._wrapper.style.position="absolute",this._wrapper.style.transform="translateX(-50%)",this._wrapper.style.bottom="4px";const t=document.createElement("div");t.style.position="relative",t.style.zIndex="10",t.style.width=t.style.height="5px",t.style.borderRadius="50%",t.style.background="#ff6666",e.append(this._wrapper,t),this.update(A)}show(){this.element.style.display="block"}hide(){this.element.style.display="none"}update(A){this._wrapper.innerText="旋转半径:"+A+" mm"}}const cv="data:image/png;base64,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",pj="data:image/png;base64,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";class k_ extends zg{constructor(A,e){const t=document.createElement("div");super(t),this.props=A,this.amr=e,this._direction=1,this._controllingRotate=!1,this._controlling=!1,this._startAt=0,this._looper=0,this._initial=0,this._canRotate=!1,this._emitter=new br,this.addListener=this._emitter.addListener.bind(this._emitter),this.removeListener=this._emitter.removeListener.bind(this._emitter),this._update=()=>{if(this._looper=requestAnimationFrame(this._update),this._controlling){let s=(Date.now()-this._startAt)/200;s>4&&(s=4);let o=this._initial+.005*s*this._direction;if(o>this.props.max||o<this.props.min){this.mechanism&&(o<this.props.min?(this.mechanism.position.setY(this.props.min),this._emitter.emit("change",this.props.min)):o>this.props.max&&(this.mechanism.position.setY(this.props.max),this._emitter.emit("change",this.props.max)));return}if(this._initial=o,!this.mechanism)return;this.mechanism.position.setY(o),this._emitter.emit("change",o)}},A.userData&&A.userData.target&&(this.name=A.userData.target.name,e.traverse(s=>{s.name===A.userData.target.name&&(this.mechanism=s)})),t.style.fontSize="30px",t.style.color="#0066FF",t.style.cursor="pointer",t.style.pointerEvents="auto";const i=document.createElement("div");i.innerText="↑",i.style.position="absolute",i.style.left="0",i.style.transform="translateX(-50%)",i.style.marginBottom="5px",i.setAttribute("data-direction","up");const r=document.createElement("div");if(r.style.position="absolute",r.style.left="0",r.style.transform="translateX(-50%)",r.innerText="↓",i.style.bottom=r.style.top="8px",r.setAttribute("data-direction","down"),Array.from([i,r]).forEach(s=>{s.addEventListener("mousemove",()=>{s.style.color="#00FF95"}),s.addEventListener("mouseleave",()=>{s.style.color="#0066FF"}),s.addEventListener("pointerdown",()=>{this.mechanism&&(this._controlling=!0,this._startAt=Date.now(),this._initial=this.mechanism.position.y,this._direction=s.getAttribute("data-direction")==="up"?1:-1,this._update())}),s.addEventListener("pointerup",()=>{this._controlling=!1,cancelAnimationFrame(this._looper)}),s.addEventListener("pointerleave",()=>{this._controlling=!1,cancelAnimationFrame(this._looper)})}),A.userData&&(this._canRotate=A.userData.canRotate,this._canRotate)){const{rotateTarget:s,rotateDuration:o,rotateStep:a,rotateMax:l,rotateMin:u}=A.userData;let c;if(s&&(e.traverse(h=>{h.name===s.name&&(c=h)}),c)){const h=document.createElement("div");h.style.background=`url(${cv}) center no-repeat`,h.style.backgroundSize="100% auto",h.style.width=h.style.height="35px",h.style.position="absolute",h.style.top="0",h.style.transform="translateY(-50%) scaleX(-100%) rotateZ(-30deg) rotateX(-40deg)",h.style.marginBottom="5px",h.setAttribute("data-direction","left"),t.append(h);const f=document.createElement("div");f.style.background=`url(${cv}) center no-repeat`,f.style.backgroundSize="100% auto",f.style.width=f.style.height="35px",f.style.position="absolute",h.style.right=f.style.left="10px",f.style.top="0",f.style.transform="translateY(-50%) rotateZ(-30deg) rotateX(-40deg)",f.style.marginBottom="5px",f.setAttribute("data-direction","right"),t.append(f),Array.from([h,f]).forEach(p=>{p.addEventListener("mousemove",()=>{p.style.backgroundImage=`url(${pj})`}),p.addEventListener("mouseleave",()=>{p.style.backgroundImage=`url(${cv})`}),p.addEventListener("pointerdown",()=>{if(this._timer&&this._timer.isPlaying())return;this._controllingRotate=!0,this._startAt=Date.now(),this._direction=p.getAttribute("data-direction")==="left"?-1:1;let m=a/180*Math.PI*this._direction+c.rotation.y;m>l/180*Math.PI?m=l/180*Math.PI:m<u/180*Math.PI&&(m=u/180*Math.PI),this._timer=new bu(c.rotation).to({y:m}).duration(o).start(),this._update()}),p.addEventListener("pointerup",()=>{this._controllingRotate=!1,cancelAnimationFrame(this._looper)}),p.addEventListener("pointerleave",()=>{this._controllingRotate=!1,cancelAnimationFrame(this._looper)})})}}t.append(i,r),this.scale.set(.01,.01,.01),this.matrixAutoUpdate=!1,this.updateMatrix()}hide(){this.element.style.display="none",this.traverse(A=>A.visible=!1),this.visible=!1}show(){this.element.style.display="auto",this.traverse(A=>A.visible=!0),this.visible=!0}dispose(){this._emitter.removeAllListeners(),cancelAnimationFrame(this._looper),this.element.remove()}}new O,new O;class gj extends Ie{constructor(A=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=A,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&&e.element.parentNode!==null&&e.element.parentNode.removeChild(e.element)})})}copy(A,e){return super.copy(A,e),this.element=A.element.cloneNode(!0),this}}new zA,new zA;class mj extends gj{constructor(A){const e=document.createElement("div");super(e),this.props=A,this._scale=.01,this._emitter=new br,this.addEventListener=this._emitter.on.bind(this._emitter),this.removeEventListener=this._emitter.on.bind(this._emitter),this._mouseStart=new uA,this._targetSize=new uA,this._caches=[],this._sizeFlag="width",this._direction=1,this._lines=[],this._pointerdown=a=>{const{pageX:l,pageY:u}=a;this.endNode.setPointerCapture(a.pointerId),this._mouseStart.set(l,u),this._targetSize.setX(parseFloat(this.endNode.parentElement.style.width)),this._targetSize.setY(parseFloat(this.endNode.parentElement.style.height))},this._pointermove=a=>{if(!this._mouseStart.x)return;const{pageX:l,pageY:u}=a;let c=l-this._mouseStart.x,h=c+this._targetSize.x;this._sizeFlag==="height"&&(c=u-this._mouseStart.y,h=c*this._direction+this._targetSize.y);const f=h%10;h=h-f,c=(h-this._targetSize.x)*this._direction,this._sizeFlag==="height"&&(c=(h-this._targetSize.y)*this._direction),this._textNode.innerText=(h/100).toFixed(2)+" m",this.endNode.parentElement.style[this._sizeFlag]=`${h}px`},this._pointercancel=a=>{this.endNode.releasePointerCapture(a.pointerId),this._mouseStart.set(0,0)};const{start:t,end:i}=A,r=i.distanceTo(t);this.props.axios==="z"?this.props.axios="y":this.props.axios==="y"&&(this.props.axios="z"),this.props.axios==="y"&&(this._sizeFlag="height");const s=document.createElement("div");s.style.position="absolute",s.style.left="0",s.style.bottom="0",e.append(s),this._textNode=document.createElement("div"),this._textNode.innerText=r.toFixed(2)+" m",s.append(this._textNode);const o=document.createElement("div");this.endNode=o,o.style.position="absolute",o.style.left="auto",o.style.right="0",o.style.width="4px",o.style.height="4px",o.style.background="#0066FF",o.style.borderRadius="50%",o.style.margin="-2px -2px 0 0",o.style.cursor="pointer",s.append(o),this.scale.set(this._scale,this._scale,this._scale),e.style.fontSize="6px",e.style.color="#fff",s.style[this._sizeFlag]=r*100+"px",s.style.textAlign="center",this._sizeFlag==="height"?(s.style.borderLeft="0.1px dashed #fff",s.style.display="flex",s.style.alignItems="center",s.style.justifyContent="center",s.style.whiteSpace="nowrap",o.style.top="0",o.style.left="0",o.style.right="auto",o.style.margin="-2px 0 0 -2px"):s.style.borderBottom="0.1px dashed #fff",o.addEventListener("pointerdown",this._pointerdown),o.addEventListener("pointermove",this._pointermove),o.addEventListener("pointerup",this._pointercancel),i[this.props.axios]<t[this.props.axios]?this.rotateY(Math.PI):this._direction=-1}_getIndexByAxios(){return this.props.axios==="y"?1:this.props.axios==="z"?2:0}dispose(){this._lines.forEach(A=>A.dispose()),this._emitter.removeAllListeners(),this.endNode.removeEventListener("pointerdown",this._pointerdown),this.endNode.removeEventListener("pointermove",this._pointermove),this.endNode.removeEventListener("pointerup",this._pointercancel),this.element.remove(),this._caches.forEach(A=>A.clear()),this._caches=[]}}const vj="*{box-sizing:border-box}.pointer-container{width:20px;height:20px;pointer-events:auto;cursor:pointer;display:flex;align-items:center;justify-content:center}.pointer-container.active .point{transform:scale(3);background:#06f}.pointer-container:hover .point{transform:scale(4);background:#00ff95}.pointer-container:hover .value{opacity:1;transform:translate3d(-50%,0,0)}.pointer-container .point{width:3px;height:3px;border-radius:50%;background:#898989;transition:all .2s}.pointer-container .value{white-space:nowrap;pointer-events:none;font-size:12px;opacity:0;position:absolute;bottom:80%;left:50%;color:#898989;transform:translate3d(-50%,-14px,0);transition:all .2s}";var yj=Object.defineProperty,wj=Object.getOwnPropertyDescriptor,hv=(n,A,e,t)=>{for(var i=t>1?void 0:t?wj(A,e):A,r=n.length-1,s;r>=0;r--)(s=n[r])&&(i=(t?s(A,e,i):s(i))||i);return t&&i&&yj(A,e,i),i};class Cj extends Ie{constructor(){super(),this._box3=new ye,this._line11=new Yf("长:"),this._line12=new Yf("宽:"),this._line13=new Yf("高:"),this._outline=new R_(0,0),this._radius=0,this._hasWidthConfig=!1,this._hasLengthConfig=!1,this._hasHeightConfig=!1,this.follow="",this.followOrigin=0,this.followScale=1,this.originOffset=0,this.translateCache=0,this.head=0,this.tail=0,this._changeSize=z9(A=>{this._line11.updateSize(A),this._line12.updateSize(A),this._line13.updateSize(A)},100),this._change=()=>{if(!this._app)return;const A=this._app.camera;A&&(this._outline.change(A.position),this._changeSize(A.position),this._line13.updateDirection(A.position))},this.add(this._outline,this._line11,this._line12,this._line13)}get hasSizeConfig(){return{length:this._hasLengthConfig,width:this._hasWidthConfig,height:this._hasHeightConfig}}get size(){return this._box3.clone()}get radius(){return this._radius}init(A){this._app=A,this._app.controls.addEventListener("change",this._change)}reset(){this.hide()}generate(A,e=0){A&&(this._object=A),this.update(e)}show(){this.visible=!0,this._outline.visible=!0,this._outline.show(),this.traverse(A=>A.visible=!0)}hide(){this.visible=!1,this._outline.visible=!1,this._outline.hide(),this.traverse(A=>A.visible=!1)}destroy(){var A;(A=this._app)==null||A.controls.removeEventListener("change",this._change),this._line11.destroy(),this._line12.destroy(),this._line13.destroy()}update(A=0){if(!this._object)return;const e=this._object,{box:t,maxRadius:i,hasLength:r,hasHeight:s,hasWidth:o}=Pb(e);this.tail=Math.abs(t.min.x),this.head=Math.abs(t.max.x),this._hasWidthConfig=o,this._hasLengthConfig=r,this._hasHeightConfig=s,this._box3.copy(t),this._radius=i,this.follow&&A&&(this.originOffset=(this.followOrigin-A)*this.followScale),this._outline.update(this._radius),this._change();const a=this._box3.min.x,l=this._box3.max.x,u=this._box3.min.z,c=this._box3.max.z,h=this._box3.min.y,f=this._box3.max.y;let p=.3;const m=new O(a,0,u),d=new O(l,0,u);this._line11.update(m.clone().sub(new O(0,0,p/1.8)),d.clone().sub(new O(0,0,p/1.8)));const g=new O(l,0,c);this._line12.update(d.clone().add(new O(p,0,0)),g.clone().add(new O(p,0,0)));const y=new O(a,h,u),v=new O(a,f,u),w=y.clone();w.z-=p/3;const C=v.clone();C.z-=p/3,this._line13.update(w,C)}}let bc=class extends Gr{constructor(n,A=!1){super(),this.text="",this.active=!1,this.text=(n*1e3).toFixed(0),this.active=A}render(){return An`
|
|
9844
9844
|
<div class="pointer-container ${this.active&&"active"}">
|
|
9845
9845
|
<div class="point"></div>
|
|
9846
9846
|
<div class="value">${this.text} mm</div>
|