@selvajs/visualization 1.0.0-beta.0
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/LICENSE +21 -0
- package/README.md +113 -0
- package/dist/chunk-5XGN7UAV.js +2 -0
- package/dist/chunk-5XGN7UAV.js.map +1 -0
- package/dist/chunk-AQJPVUH3.cjs +2 -0
- package/dist/chunk-AQJPVUH3.cjs.map +1 -0
- package/dist/chunk-BYLIBOAU.cjs +2 -0
- package/dist/chunk-BYLIBOAU.cjs.map +1 -0
- package/dist/chunk-EXAI6IC5.js +2 -0
- package/dist/chunk-EXAI6IC5.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/parse.cjs +10 -0
- package/dist/parse.cjs.map +1 -0
- package/dist/parse.d.cts +235 -0
- package/dist/parse.d.ts +235 -0
- package/dist/parse.js +10 -0
- package/dist/parse.js.map +1 -0
- package/dist/render.cjs +110 -0
- package/dist/render.cjs.map +1 -0
- package/dist/render.d.cts +430 -0
- package/dist/render.d.ts +430 -0
- package/dist/render.js +110 -0
- package/dist/render.js.map +1 -0
- package/dist/scene.cjs +2 -0
- package/dist/scene.cjs.map +1 -0
- package/dist/scene.d.cts +110 -0
- package/dist/scene.d.ts +110 -0
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -0
- package/dist/types-CdF9R3qA.d.cts +41 -0
- package/dist/types-CdF9R3qA.d.ts +41 -0
- package/package.json +115 -0
package/dist/render.cjs
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkAQJPVUH3cjs = require('./chunk-AQJPVUH3.cjs');var _chunkBYLIBOAUcjs = require('./chunk-BYLIBOAU.cjs');var _three = require('three'); var Ut = _interopRequireWildcard(_three); var ne = _interopRequireWildcard(_three); var he = _interopRequireWildcard(_three); var K = _interopRequireWildcard(_three); var mt = _interopRequireWildcard(_three); var nt = _interopRequireWildcard(_three); var Ce = _interopRequireWildcard(_three); var oe = _interopRequireWildcard(_three); var _ = _interopRequireWildcard(_three); var gt = _interopRequireWildcard(_three); var D = _interopRequireWildcard(_three); var Te = _interopRequireWildcard(_three); var B = _interopRequireWildcard(_three); var je = _interopRequireWildcard(_three); var wt = _interopRequireWildcard(_three); var de = _interopRequireWildcard(_three); var St = _interopRequireWildcard(_three); var De = _interopRequireWildcard(_three); var Pt = _interopRequireWildcard(_three); var Ft = _interopRequireWildcard(_three); var O = _interopRequireWildcard(_three); var N = _interopRequireWildcard(_three); var F = _interopRequireWildcard(_three); var te = _interopRequireWildcard(_three); var pe = _interopRequireWildcard(_three);function fe(e){let n=e.clone().normalize(),t=new K.Vector3(0,0,1),r=new K.Vector3(0,1,0),i=Math.abs(n.dot(t))>.9?r:t,o=new K.Vector3().crossVectors(i,n).normalize(),a=new K.Vector3().crossVectors(n,o).normalize();return{up:n,forward:a,right:o}}function ye(e,n){let{forward:t,right:r,up:i}=fe(e);return t.clone().multiplyScalar(-1).add(r.clone().multiplyScalar(-1)).add(i).normalize().multiplyScalar(n)}function qe(e,n,t){let{forward:r,right:i,up:o}=fe(e);return i.clone().multiplyScalar(n).add(r.clone().multiplyScalar(n)).add(o.clone().multiplyScalar(t))}function Xe(e){let n=e.clone().normalize(),t=new K.Vector3(0,1,0);if(n.dot(t)>.9999)return new K.Euler;if(n.dot(t)<-.9999)return new K.Euler(Math.PI,0,0);let r=new K.Quaternion().setFromUnitVectors(t,n);return new K.Euler().setFromQuaternion(r)}function xe(e){let n=Math.abs(e.x),t=Math.abs(e.y),r=Math.abs(e.z);return n>=t&&n>=r?"x":t>=r?"y":"z"}var $={HUGE_THRESHOLD:1e4,LARGE_THRESHOLD:1e3,SCALE_RATIO_THRESHOLD:100,NEAR_PLANE_FACTOR:{TINY:1e-4,SMALL:.001,NORMAL:.01},FAR_PLANE_FACTOR:{HUGE:100,LARGE:50,NORMAL:20},INITIAL_DISTANCE_MULTIPLIER:4};function Jt(e,n,t,r,i){if(nr(e),n.length===0)return;n.forEach(f=>{e.add(f)});let o=_chunkAQJPVUH3cjs.m.call(void 0, n),a=o.getCenter(new he.Vector3),s=o.getSize(new he.Vector3),l=Math.max(s.x,s.y,s.z);if(l/Math.min(s.x||1,s.y||1,s.z||1)>$.SCALE_RATIO_THRESHOLD||l>$.HUGE_THRESHOLD?(t.near=l*$.NEAR_PLANE_FACTOR.TINY,t.far=l*$.FAR_PLANE_FACTOR.HUGE):l>$.LARGE_THRESHOLD?(t.near=l*$.NEAR_PLANE_FACTOR.SMALL,t.far=l*$.FAR_PLANE_FACTOR.LARGE):(t.near=Math.max(.01,l*$.NEAR_PLANE_FACTOR.NORMAL),t.far=Math.max(2e3,l*$.FAR_PLANE_FACTOR.NORMAL)),t.updateProjectionMatrix(),!i){let f=l*$.INITIAL_DISTANCE_MULTIPLIER;t.position.copy(a).add(ye(t.up,f)),r.target.copy(a),r.update()}}var er=new Set(["grid","floor","label-layer","measure"]);function tr(e){let n=e;for(;n;){if(typeof n.userData.id=="string"&&er.has(n.userData.id))return!0;n=n.parent}return!1}function Q(e){e.updateMatrixWorld(!0);let n=new he.Box3;return e.traverse(t=>{let r=t;t.visible&&!tr(t)&&r.geometry&&n.expandByObject(t)}),n}var rr=new Set(["floor","grid","label-layer"]);function nr(e){[...e.children].forEach(t=>{rr.has(t.userData.id)||t.userData.source!=="user"&&(_chunkAQJPVUH3cjs.v.call(void 0, t),t.removeFromParent())})}function or(e){let{up:n,forward:t,right:r}=fe(e),i=t.clone().negate(),o=r.clone();return{top:n.clone(),bottom:n.clone().negate(),front:i.clone(),back:i.clone().negate(),right:o.clone(),left:o.clone().negate(),iso:i.clone().multiplyScalar(1.2).add(o.clone()).add(n.clone()).normalize()}}function Ke(e){let{scene:n,perspective:t,controls:r,onActiveCameraChange:i}=e,o=(_nullishCoalesce(e.up, () => (t.up))).clone().normalize(),a=or(o),s=new ne.OrthographicCamera(-1,1,1,-1,t.near,t.far);s.up.copy(o);let l="perspective",m=t.aspect,f=()=>l==="perspective"?t:s,E=null,g=()=>{_optionalChain([E, 'optionalAccess', _2 => _2.cancel, 'call', _3 => _3()]),E=null},u=()=>{let R=(l==="orthographic"?s:t).position.distanceTo(r.target)*Math.tan(t.fov*Math.PI/360),T=R*m;s.left=-T,s.right=T,s.top=R,s.bottom=-R,s.near=t.near,s.far=t.far,s.updateProjectionMatrix()},p=d=>{if(d!==l){if(g(),d==="orthographic")s.position.copy(t.position),s.up.copy(t.up),s.lookAt(r.target),s.zoom=1,u();else{let R=(s.top-s.bottom)/(2*s.zoom)/Math.tan(t.fov*Math.PI/360),T=s.position.clone().sub(r.target);T.lengthSq()<1e-12&&T.copy(o),T.normalize(),t.position.copy(r.target).add(T.multiplyScalar(R))}l=d,r.object=f(),r.update(),i(f())}},h=(d,c,R,T)=>{let x=t.fov*(Math.PI/180),M=c/(2*Math.tan(x/2))*1.5,P=ir(R,o),L=d.clone().add(P.clone().multiplyScalar(M)),Y=f();l==="orthographic"&&(s.zoom=1),g(),T?E=sr(Y,r,L,d,()=>{l==="orthographic"&&u()}):(Y.position.copy(L),r.target.copy(d),l==="orthographic"&&u(),r.update())},C=(d,c=!0)=>{let R=Q(n),T=R.isEmpty()?r.target.clone():R.getCenter(new ne.Vector3),x=R.isEmpty()?new ne.Vector3(1,1,1):R.getSize(new ne.Vector3),M=Math.max(x.x,x.y,x.z)||1;h(T,M,d,c)};return{getActiveCamera:f,getProjection:()=>l,setProjection:p,toggleProjection:()=>(p(l==="perspective"?"orthographic":"perspective"),l),setView:(d,c=!0)=>{C(a[d],c)},setViewDirection:C,frameBounds:(d,c=!0)=>{if(d.isEmpty())return;let R=d.getCenter(new ne.Vector3),T=d.getSize(new ne.Vector3),x=Math.max(T.x,T.y,T.z)||1,M=f().position.clone().sub(r.target);M.lengthSq()<1e-12&&M.copy(a.iso),h(R,x,M.normalize(),c)},setRotateEnabled:d=>{r.enableRotate=d},isRotateEnabled:()=>r.enableRotate,updateAspect:(d,c)=>{m=c===0?m:d/c,l==="orthographic"&&u()},dispose:g}}function ir(e,n){let{up:t,forward:r}=fe(n),i=e.clone().normalize();if(Math.abs(i.dot(t))<.9999)return e;let o=r.clone().negate(),a=.5*Math.PI/180;return i.multiplyScalar(Math.cos(a)).add(o.multiplyScalar(Math.sin(a))).normalize()}var ar=e=>1-Math.pow(1-e,3);function sr(e,n,t,r,i,o=250){let a=e.position.clone(),s=n.target.clone(),l=performance.now(),m=null,f=()=>{m=null;let E=ar(Math.min((performance.now()-l)/o,1));e.position.lerpVectors(a,t,E),n.target.lerpVectors(s,r,E),i(),n.update(),E<1&&(m=requestAnimationFrame(f))};return m=requestAnimationFrame(f),{cancel:()=>{m!==null&&(cancelAnimationFrame(m),m=null)}}}var _LineSegments2js = require('three/addons/lines/LineSegments2.js');var _LineSegmentsGeometryjs = require('three/addons/lines/LineSegmentsGeometry.js');var cr=.15,dr=4096;function ur(e){let n=Math.floor(e.length/6);if(n===0)return 1/0;let t=Math.max(1,Math.ceil(n/dr)),r=[];for(let i=0;i<n;i+=t){let o=i*6,a=Math.hypot(e[o+3]-e[o],e[o+4]-e[o+1],e[o+5]-e[o+2]);a>0&&r.push(a)}return r.length===0?1/0:(r.sort((i,o)=>i-o),r[Math.min(r.length-1,Math.floor(r.length*cr))])}function Ye(e){let n=new _LineSegmentsGeometryjs.LineSegmentsGeometry;return n.setPositions(e),{geometry:n,segmentCount:e.length/6,edgeSpacing:ur(e)}}function He(e,n,t){let o=Math.cos(Math.PI/180*t),a=e.length/3;if(a>=67108864)throw new Error(`extractEdgeSegments: ${a} vertices exceeds 2^26 limit`);let s=new Float64Array(a),l=new Float64Array(a),m=new Float64Array(a);for(let c=0;c<a;c++)s[c]=Math.round(e[3*c]*1e4),l[c]=Math.round(e[3*c+1]*1e4),m[c]=Math.round(e[3*c+2]*1e4);let f=16;for(;f<a*2;)f<<=1;let E=f-1,g=new Int32Array(f).fill(-1),u=new Int32Array(a);for(let c=0;c<a;c++){let R=(Math.imul(s[c]|0,73856093)^Math.imul(l[c]|0,19349663)^Math.imul(m[c]|0,83492791))&E;for(;;){let T=g[R];if(T===-1){g[R]=c,u[c]=c;break}if(s[T]===s[c]&&l[T]===l[c]&&m[T]===m[c]){u[c]=T;break}R=R+1&E}}let p=new Float32Array(4096),h=0,C=(c,R)=>{if(h+6>p.length){let T=new Float32Array(p.length*2);T.set(p),p=T}p[h++]=e[3*c],p[h++]=e[3*c+1],p[h++]=e[3*c+2],p[h++]=e[3*R],p[h++]=e[3*R+1],p[h++]=e[3*R+2]},b=new Map,A=[],S=[],I=[],d=(n?n.length:a)/3;for(let c=0;c<d;c++){let R=n?n[3*c]:3*c,T=n?n[3*c+1]:3*c+1,x=n?n[3*c+2]:3*c+2,M=u[R],P=u[T],L=u[x];if(M===P||P===L||L===M)continue;let Y=e[3*x]-e[3*T],w=e[3*x+1]-e[3*T+1],k=e[3*x+2]-e[3*T+2],v=e[3*R]-e[3*T],y=e[3*R+1]-e[3*T+1],z=e[3*R+2]-e[3*T+2],j=w*z-k*y,V=k*v-Y*z,G=Y*y-w*v,be=j*j+V*V+G*G;if(be>0){let Z=1/Math.sqrt(be);j*=Z,V*=Z,G*=Z}else j=0,V=0,G=0;for(let Z=0;Z<3;Z++){let ee,re,U,q;Z===0?(ee=R,re=T,U=M,q=P):Z===1?(ee=T,re=x,U=P,q=L):(ee=x,re=R,U=L,q=M);let ve=q*67108864+U,ie=b.get(ve);if(ie!==void 0&&ie!==-1)j*I[3*ie]+V*I[3*ie+1]+G*I[3*ie+2]<=o&&C(ee,re),b.set(ve,-1);else{let ue=U*67108864+q;if(!b.has(ue)){let Pe=A.length;b.set(ue,Pe),A.push(ee),S.push(re),I.push(j,V,G)}}}}for(let c of b.values())c!==-1&&C(A[c],S[c]);return p.slice(0,h)}function Ze(){return[`const extract = ${He.toString()};`,"self.onmessage = (event) => {"," const { id, positions, index, thresholdAngle } = event.data;"," try {"," const segments = extract(positions, index, thresholdAngle);"," self.postMessage({ id, segments }, [segments.buffer]);"," } catch (error) {"," self.postMessage({ id, error: String((error && error.message) || error) });"," }","};"].join(`
|
|
2
|
+
`)}var le="edge-overlay",we="triangle-cap",$e=2236962,mr=1.5,pr=44,Er=.75,fr=4e6,hr=2e6,Qe=25e3,Ie=128*1024*1024,Je=4,ke=1,et=0,tt=-1;function rt(e){return{forcedColor:e.color!=null?new Ce.Color(e.color):null,darken:Ce.MathUtils.clamp(_nullishCoalesce(e.darken, () => (Er)),0,1),width:_nullishCoalesce(e.width, () => (mr)),thresholdAngle:_nullishCoalesce(e.thresholdAngle, () => (pr)),distanceFade:_nullishCoalesce(e.distanceFade, () => (!0)),maxTriangles:_nullishCoalesce(e.maxTriangles, () => (fr)),maxSegments:_nullishCoalesce(e.maxSegments, () => (hr))}}function Me(e){let n=e.getAttribute("position");return n?(e.index?e.index.count:n.count)/3:0}function ot(e){let n=e.getAttribute("position");if(!n||n.isInterleavedBufferAttribute||n.itemSize!==3||!(n.array instanceof Float32Array)||n.count>=67108864)return null;let t=e.index;return t&&!(t.array instanceof Uint32Array)&&!(t.array instanceof Uint16Array)?null:{positions:n.array,index:t?t.array:null}}function it(e,n){let r=2166136261,i=l=>{r^=l,r=Math.imul(r,16777619)},o=new Uint32Array(e.positions.buffer,e.positions.byteOffset,e.positions.length),a=Math.min(4096,o.length);for(let l=0;l<a;l++)i(o[l]);for(let l=Math.max(a,o.length-4096);l<o.length;l++)i(o[l]);let s=0;if(e.index){s=e.index.length;let l=Math.min(4096,s);for(let m=0;m<l;m++)i(e.index[m]);for(let m=Math.max(l,s-4096);m<s;m++)i(e.index[m])}return`${n}:${e.positions.length}:${s}:${r>>>0}`}var J=new Map,ge=0;_chunkAQJPVUH3cjs.q.call(void 0, ()=>{J.clear(),ge=0});function at(e){let n=J.get(e);return n&&(J.delete(e),J.set(e,n)),n}function st(e,n){if(n.byteLength>Ie)return;let t=J.get(e);for(t&&(ge-=t.byteLength,J.delete(e)),J.set(e,n),ge+=n.byteLength;ge>Ie;){let r=J.keys().next().value;ge-=J.get(r).byteLength,J.delete(r)}}function Rr(e,n){let t=new nt.EdgesGeometry(e,n),r=t.attributes.position?t.attributes.position.array:new Float32Array(0);return t.dispose(),r}function _e(e,n){let t=ot(e);if(!t)return Rr(e,n);let r=it(t,n),i=at(r);if(i)return i;let o=He(t.positions,t.index,n);return st(r,o),o}var ce,Re=new Map,Tr=1;function br(){if(ce!==void 0)return ce;if(typeof Worker>"u"||typeof Blob>"u"||typeof URL>"u"||typeof URL.createObjectURL!="function")return ce=null,null;try{let e=URL.createObjectURL(new Blob([Ze()],{type:"text/javascript"})),n=new Worker(e);n.onmessage=t=>{let{id:r,segments:i,error:o}=t.data,a=Re.get(r);a&&(Re.delete(r),i?a.resolve(i):a.reject(new Error(_nullishCoalesce(o, () => ("edge extraction failed in worker")))))},n.onerror=()=>{for(let t of Re.values())t.reject(new Error("edge extraction worker crashed"));Re.clear(),n.terminate(),ce=null},ce=n}catch (e2){ce=null}return ce}function vr(e,n,t){return new Promise((r,i)=>{let o=Tr++;Re.set(o,{resolve:r,reject:i});let a=n.positions.slice(),s=n.index?n.index.slice():null,l=[a.buffer];s&&l.push(s.buffer),e.postMessage({id:o,positions:a,index:s,thresholdAngle:t},l)})}var ze=new Map;function lt(e,n){let t=ot(e);if(!t||Me(e)<Qe)return Promise.resolve(_e(e,n));let r=it(t,n),i=at(r);if(i)return Promise.resolve(i);let o=ze.get(r);if(o)return o;let a=br();if(!a)return Promise.resolve(_e(e,n));let s=vr(a,t,n).catch(()=>He(t.positions,t.index,n)).then(l=>(st(r,l),l)).finally(()=>{ze.delete(r)});return ze.set(r,s),s}var _LineMaterialjs = require('three/addons/lines/LineMaterial.js');function xr(e,n){let r=_optionalChain([(Array.isArray(e.material)?e.material[0]:e.material), 'optionalAccess', _4 => _4.color]);return r?r.clone().multiplyScalar(1-n):new oe.Color($e)}var Se=class{constructor(n){_chunkBYLIBOAUcjs.a.call(void 0, this,"options",n);_chunkBYLIBOAUcjs.a.call(void 0, this,"byKey",new Map)}for(n,t){let r=_nullishCoalesce(this.options.forcedColor, () => (xr(n,this.options.darken))),i=r.getHex()*2+(t?1:0),o=this.byKey.get(i);return o||(o=Hr(r,this.options.width,t),this.byKey.set(i,o)),o}disposeUnused(n){let t=new Set(n.map(r=>r.material));for(let r of this.byKey.values())t.has(r)||r.dispose()}};function Hr(e,n,t){let r=new (0, _LineMaterialjs.LineMaterial)({color:e});return r.linewidth=n,r.polygonOffset=!0,r.polygonOffsetFactor=et,r.polygonOffsetUnits=tt,t&&(r.transparent=!0),r}function ut(e,n,t){let r=new (0, _LineSegments2js.LineSegments2)(e.geometry,n);return r.userData.kind=le,r.raycast=()=>{},t&&Mr(r,e.edgeSpacing),r}var ct=new oe.Vector3,Cr=new oe.Vector3;function wr(e,n,t){e.geometry.boundingSphere||e.geometry.computeBoundingSphere();let r=e.geometry.boundingSphere;if(!r)return 1/0;if(n.isPerspectiveCamera){let i=n;ct.copy(r.center).applyMatrix4(e.matrixWorld);let o=Cr.setFromMatrixPosition(n.matrixWorld).distanceTo(ct),a=r.radius*e.matrixWorld.getMaxScaleOnAxis();if(o<=a)return 1/0;let s=Math.tan(oe.MathUtils.degToRad(i.fov)*.5),l=2*o*s;return l>0?t/l:1/0}if(n.isOrthographicCamera){let i=n,o=(i.top-i.bottom)/i.zoom;return o>0?t/o:1/0}return 1/0}function Mr(e,n){e.onBeforeRender=(t,r,i)=>{_LineSegments2js.LineSegments2.prototype.onBeforeRender.call(e,t);let o=e.material,a=wr(e,i,o.resolution.y),s=n*a;o.opacity=oe.MathUtils.clamp((s-ke)/(Je-ke),0,1)}}function Dr(e){return _optionalChain([e, 'access', _5 => _5.userData, 'optionalAccess', _6 => _6.kind])===le}function Ar(e,n){let t=[];return e.traverse(r=>{if(r instanceof mt.Mesh&&!(r.userData.id==="floor"||r.userData.id==="grid")&&r.userData.kind!==le&&!r.children.some(i=>_optionalChain([i, 'access', _7 => _7.userData, 'optionalAccess', _8 => _8.kind])===le)&&r.geometry){if(Me(r.geometry)>n){r.userData.edgesSkipped=we,console.debug(`[edges] skipping mesh over triangle cap (${Me(r.geometry)} > ${n})`);return}delete r.userData.edgesSkipped,t.push(r)}}),t}function Pr(e,n,t,r){let i=r.distanceFade&&n.segmentCount<=r.maxSegments,o=ut(n,t.for(e,i),i);return e.add(o),o}var pt=new WeakMap;function Ve(e){return _nullishCoalesce(pt.get(e), () => (0))}function Lr(e,n){for(let t=e;t;t=t.parent)if(t===n)return!0;return!1}async function Et(e,n={}){let t=rt(n),r=new Se(t),i=Ve(e),o=[],a=Ar(e,t.maxTriangles).map(async s=>{let l=await lt(s.geometry,t.thresholdAngle);Ve(e)===i&&Lr(s,e)&&(s.children.some(m=>_optionalChain([m, 'access', _9 => _9.userData, 'optionalAccess', _10 => _10.kind])===le)||o.push(Pr(s,Ye(l),r,t)))});return await Promise.all(a),r.disposeUnused(o),o}function ft(e){pt.set(e,Ve(e)+1);let n=[];e.traverse(r=>{r instanceof _LineSegments2js.LineSegments2&&Dr(r)&&n.push(r)});let t=new Set;for(let r of n)r.geometry.dispose(),t.add(r.material),r.removeFromParent();return t.forEach(r=>r.dispose()),n.length}function Or(e){if(!(e>0)||!Number.isFinite(e))return 1;let n=Math.floor(Math.log10(e)),t=Math.pow(10,n),r=e/t;return(r>=5?5:r>=2?2:1)*t}var Fr=`
|
|
3
|
+
varying vec3 vWorldPos;
|
|
4
|
+
void main() {
|
|
5
|
+
vec4 world = modelMatrix * vec4(position, 1.0);
|
|
6
|
+
vWorldPos = world.xyz;
|
|
7
|
+
gl_Position = projectionMatrix * viewMatrix * world;
|
|
8
|
+
}
|
|
9
|
+
`,Ir=`
|
|
10
|
+
precision highp float;
|
|
11
|
+
varying vec3 vWorldPos;
|
|
12
|
+
|
|
13
|
+
uniform vec2 uAxes; // indices (0=x,1=y,2=z) of the two in-plane world axes
|
|
14
|
+
uniform float uCell;
|
|
15
|
+
uniform float uMajor;
|
|
16
|
+
uniform vec3 uCellColor;
|
|
17
|
+
uniform vec3 uMajorColor;
|
|
18
|
+
uniform vec3 uCenter; // fade center (camera position projected onto the plane)
|
|
19
|
+
uniform float uFade;
|
|
20
|
+
|
|
21
|
+
// Antialiased grid line intensity for a given spacing, using screen-space derivatives so lines
|
|
22
|
+
// stay ~1px regardless of zoom (the standard "pristine grid" technique).
|
|
23
|
+
float gridLine(vec2 coord, float spacing) {
|
|
24
|
+
vec2 c = coord / spacing;
|
|
25
|
+
vec2 d = fwidth(c);
|
|
26
|
+
vec2 g = abs(fract(c - 0.5) - 0.5) / max(d, 1e-6);
|
|
27
|
+
float line = min(g.x, g.y);
|
|
28
|
+
return 1.0 - clamp(line, 0.0, 1.0);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Index a vec3 by a float axis id (0/1/2) without dynamic indexing (WebGL1-safe).
|
|
32
|
+
float axis(vec3 v, float i) {
|
|
33
|
+
return i < 0.5 ? v.x : (i < 1.5 ? v.y : v.z);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void main() {
|
|
37
|
+
// Pick the two in-plane world coordinates.
|
|
38
|
+
vec2 coord = vec2(axis(vWorldPos, uAxes.x), axis(vWorldPos, uAxes.y));
|
|
39
|
+
|
|
40
|
+
float minor = gridLine(coord, uCell);
|
|
41
|
+
float major = gridLine(coord, uCell * uMajor);
|
|
42
|
+
|
|
43
|
+
vec3 color = mix(uCellColor, uMajorColor, major);
|
|
44
|
+
float alpha = max(minor, major);
|
|
45
|
+
|
|
46
|
+
// Radial fade from the camera-projected center.
|
|
47
|
+
float dist = distance(vWorldPos, uCenter);
|
|
48
|
+
float fade = 1.0 - clamp(dist / uFade, 0.0, 1.0);
|
|
49
|
+
alpha *= fade * fade;
|
|
50
|
+
|
|
51
|
+
if (alpha < 0.001) discard;
|
|
52
|
+
gl_FragColor = vec4(color, alpha);
|
|
53
|
+
}
|
|
54
|
+
`;function ht(e={}){let{cellSize:n=1,majorEvery:t=10,cellColor:r=8947848,majorColor:i=4473924,fadeDistance:o=100,plane:a="y"}=e,s=a==="y"?new _.Vector2(0,2):a==="z"?new _.Vector2(0,1):new _.Vector2(1,2),l=2.5,m=new _.PlaneGeometry(1,1);a==="y"?m.rotateX(-Math.PI/2):a==="x"&&m.rotateY(Math.PI/2);let f=new _.ShaderMaterial({vertexShader:Fr,fragmentShader:Ir,transparent:!0,depthWrite:!1,side:_.DoubleSide,uniforms:{uAxes:{value:s},uCell:{value:n},uMajor:{value:t},uCellColor:{value:new _.Color(r)},uMajorColor:{value:new _.Color(i)},uCenter:{value:new _.Vector3},uFade:{value:o}}}),E=new _.Mesh(m,f);E.name="grid",E.userData.id="grid",E.renderOrder=-1;let g=o,u=o*l,p=new _.Vector3;return{object:E,update:h=>{a==="y"?(E.position.set(h.x,0,h.z),p.set(h.x,0,h.z)):a==="z"?(E.position.set(h.x,h.y,0),p.set(h.x,h.y,0)):(E.position.set(0,h.y,h.z),p.set(0,h.y,h.z)),f.uniforms.uCenter.value.copy(p),E.scale.setScalar(u)},fitToContent:h=>{if(h.isEmpty())return;let C=h.getSize(new _.Vector3),b=(I,d)=>d===0?I.x:d===1?I.y:I.z,A=Math.max(b(C,s.x),b(C,s.y));if(!(A>0)||!Number.isFinite(A))return;let S=20;f.uniforms.uCell.value=Or(A/S),g=A*2,f.uniforms.uFade.value=g,u=g*l},setVisible:h=>{E.visible=h},dispose:()=>{E.removeFromParent(),m.dispose(),f.dispose()}}}var _CSS2DRendererjs = require('three/addons/renderers/CSS2DRenderer.js');function Rt(e,n){let t=new _CSS2DRendererjs.CSS2DRenderer,r=t.domElement;r.style.position="absolute",r.style.top="0",r.style.left="0",r.style.overflow="hidden",r.style.pointerEvents="none",r.style.zIndex="30",getComputedStyle(e).position==="static"&&(e.style.position="relative"),e.appendChild(r);let i={width:e.clientWidth||1,height:e.clientHeight||1};t.setSize(i.width,i.height);let o=new gt.Group;o.name="label-layer",o.userData.id="label-layer",n.add(o);let a=new Set;return{addLabel:(l,m,f)=>{let E=document.createElement("div");E.textContent=l,f?E.className=f:Object.assign(E.style,{padding:"2px 6px",borderRadius:"4px",background:"rgba(20, 20, 20, 0.78)",color:"#fff",font:"12px/1.3 system-ui, sans-serif",whiteSpace:"pre",textAlign:"center",userSelect:"none"}),E.style.pointerEvents="none";let g=new (0, _CSS2DRendererjs.CSS2DObject)(E);return g.position.copy(m),o.add(g),a.add(g),{object:g,setPosition:u=>g.position.copy(u),setText:u=>{E.textContent=u},remove:()=>{g.removeFromParent(),E.remove(),a.delete(g)}}},render:(l,m)=>t.render(l,m),setSize:(l,m)=>t.setSize(l,m),dispose:()=>{a.forEach(l=>{l.removeFromParent(),l.element.remove()}),a.clear(),o.removeFromParent(),r.remove()}}}var _Line2js = require('three/addons/lines/Line2.js');var _LineGeometryjs = require('three/addons/lines/LineGeometry.js');var Nr=12,Gr=16763904,Tt=.015,bt={Millimeters:{metersPerUnit:1/1e3,suffix:"mm"},Centimeters:{metersPerUnit:1/100,suffix:"cm"},Meters:{metersPerUnit:1,suffix:"m"},Inches:{metersPerUnit:1/39.37,suffix:"in"},Feet:{metersPerUnit:1/3.28084,suffix:"ft"}};function Ur(e){let n=e&&bt[e]||bt.Meters;return t=>`${(t/n.metersPerUnit).toPrecision(3)} ${n.suffix}`}function Br(e,n){if(e.isOrthographicCamera){let r=e;return Math.abs(r.top-r.bottom)/(r.zoom||1)*Tt}return((n?e.position.distanceTo(n):e.position.length())||1)*Tt}function Wr(e){let n=e.object;if(n instanceof D.Mesh)return e.face?[e.face.a,e.face.b,e.face.c]:null;if(n instanceof D.Points)return e.index!=null?[e.index]:null;if(n instanceof D.Line){if(e.index==null)return null;let t=n.geometry.index;return t?e.index+1>=t.count?null:[t.getX(e.index),t.getX(e.index+1)]:[e.index,e.index+1]}return null}function qr(e,n,t,r){let i=e.point.clone(),o=e.object,a=Wr(e);if(!a||!o.geometry)return i;let s=o.geometry.attributes.position;if(!s)return i;let l=g=>{let u=g.clone().project(n);return new D.Vector2((u.x+1)/2*t.width,(1-u.y)/2*t.height)},m=l(i),f=i,E=r;for(let g of a){if(g>=s.count)continue;let p=new D.Vector3().fromBufferAttribute(s,g).applyMatrix4(o.matrixWorld),h=l(p).distanceTo(m);h<E&&(E=h,f=p)}return f}function vt(e){let{canvas:n,scene:t,getActiveCamera:r,getViewTarget:i,labelLayer:o,options:a={}}=e,s=_nullishCoalesce(a.snapPixels, () => (Nr)),l=new D.Color(_nullishCoalesce(a.color, () => (Gr))),m=Ur(a.displayUnit),f=(v,y)=>`${m(v)}
|
|
55
|
+
\u0394x ${m(y.x)} \u0394y ${m(y.y)} \u0394z ${m(y.z)}`,E=_nullishCoalesce(a.format, () => (f)),g=new D.Raycaster,u=new D.Vector2,p=!1,h=[],C=[],b=null,A=null,S=new D.PointsMaterial({color:l,size:8,sizeAttenuation:!1,depthTest:!1}),I=new D.PointsMaterial({color:l,size:11,sizeAttenuation:!1,depthTest:!1,transparent:!0,opacity:.5}),d=null,c=v=>{if(!v){d&&(d.visible=!1);return}if(!d){let y=new D.BufferGeometry;y.setAttribute("position",new D.Float32BufferAttribute([0,0,0],3)),d=new D.Points(y,I),d.renderOrder=1e3,d.userData.id="measure",d.raycast=()=>{},t.add(d)}d.position.copy(v),d.visible=!0},R=v=>{let y=new D.BufferGeometry;y.setAttribute("position",new D.Float32BufferAttribute([v.x,v.y,v.z],3));let z=new D.Points(y,S);return z.renderOrder=999,z.userData.id="measure",z.raycast=()=>{},t.add(z),z},T=()=>{h.length=0,C.forEach(v=>{v.geometry.dispose(),v.removeFromParent()}),C.length=0,b&&(b.geometry.dispose(),b.material.dispose(),b.removeFromParent(),b=null),_optionalChain([A, 'optionalAccess', _11 => _11.remove, 'call', _12 => _12()]),A=null},x=()=>{if(h.length!==2)return;let[v,y]=h,z=new _LineGeometryjs.LineGeometry;z.setPositions([v.x,v.y,v.z,y.x,y.y,y.z]);let j=new (0, _LineMaterialjs.LineMaterial)({color:l});j.linewidth=2,j.depthTest=!1,b=new (0, _Line2js.Line2)(z,j),b.renderOrder=998,b.userData.id="measure",b.raycast=()=>{},t.add(b);let V=v.clone().add(y).multiplyScalar(.5),G=new D.Vector3(Math.abs(y.x-v.x),Math.abs(y.y-v.y),Math.abs(y.z-v.z));A=o.addLabel(E(v.distanceTo(y),G),V,a.labelClassName)},M=v=>{let y=n.getBoundingClientRect();u.x=(v.clientX-y.left)/y.width*2-1,u.y=-((v.clientY-y.top)/y.height)*2+1;let z=r();g.setFromCamera(u,z);let j=Br(z,_optionalChain([i, 'optionalCall', _13 => _13()]));g.params.Line.threshold=j,g.params.Points.threshold=j;let V=g.intersectObjects(t.children,!0).filter(G=>G.object.userData.id!=="measure"&&G.object.userData.id!=="grid");return V.length===0?null:qr(V[0],z,{width:y.width,height:y.height},s)},P=null,L=0,Y=()=>{L&&(cancelAnimationFrame(L),L=0),P=null};return{setEnabled:v=>{p=v,v||(Y(),T(),c(null))},isEnabled:()=>p,handleClick:v=>{if(!p)return!1;h.length===2&&T();let y=M(v);return y===null||(h.push(y),C.push(R(y)),h.length===2&&x()),!0},handleMove:v=>{p&&(P=v,!L&&(L=requestAnimationFrame(()=>{L=0;let y=P;P=null,!(!p||!y)&&c(M(y))})))},clear:T,dispose:()=>{Y(),T(),d&&(d.geometry.dispose(),d.removeFromParent(),d=null),S.dispose(),I.dispose()}}}var Xr=.5,Kr=.01,Yr=.05,Zr=[];function yt({camera:e,scene:n,groundNormals:t=()=>Zr}){let r=e.near,i=e.near,o=new Te.Vector3,a=new Te.Vector3;return{update:()=>{e.near!==i&&(r=e.near);let l=Q(n),m=r;if(!l.isEmpty()){let f=l.getSize(a).length()*.5,E=e.position.distanceTo(l.getCenter(o))-f;for(let g of t())E=Math.min(E,Math.abs(e.position.dot(g)));m=Te.MathUtils.clamp(E*Xr,r,e.far*Kr)}Math.abs(m-i)>i*Yr&&(e.near=m,e.updateProjectionMatrix(),i=m)}}}var _ViewHelperjs = require('three/addons/helpers/ViewHelper.js');function xt(e){let{camera:n,domElement:t,controller:r}=e,i=new (0, _ViewHelperjs.ViewHelper)(n,t);i.setLabels("X","Y","Z");let o=!0,a=128,s=new B.Raycaster,l=new B.OrthographicCamera(-2,2,2,-2,0,4);l.position.set(0,0,2),l.updateMatrixWorld();let m={posX:new B.Vector3(1,0,0),negX:new B.Vector3(-1,0,0),posY:new B.Vector3(0,1,0),negY:new B.Vector3(0,-1,0),posZ:new B.Vector3(0,0,1),negZ:new B.Vector3(0,0,-1)},f=g=>{let u=t.getBoundingClientRect(),p=u.left+t.offsetWidth-a-i.location.right,h=u.top+t.offsetHeight-a-i.location.bottom,C=new B.Vector2((g.clientX-p)/a*2-1,-((g.clientY-h)/a)*2+1);if(Math.abs(C.x)>1||Math.abs(C.y)>1)return null;i.quaternion.copy(n.quaternion).invert(),i.updateMatrixWorld(),s.setFromCamera(C,l);let b=s.intersectObjects(i.children,!1);for(let A of b){let S=_optionalChain([A, 'access', _14 => _14.object, 'access', _15 => _15.userData, 'optionalAccess', _16 => _16.type]);if(typeof S=="string"&&S in m)return S}return null};return{render:g=>{if(!o)return;let u=g.autoClear;g.autoClear=!1,i.render(g),g.autoClear=u},handleClick:g=>{if(!o)return!1;let u=f(g);return u?(r.getProjection()==="orthographic"&&r.setProjection("perspective"),r.setViewDirection(m[u],!1),!0):!1},setVisible:g=>{o=g},isVisible:()=>o,dispose:()=>i.dispose()}}function Ht(e,n,t,r,i,o,a,s,l,m,f,E,g,u,p=!0){let h=null,C=performance.now(),b=!0,A=0,S=500,I=new je.Matrix4,d=new je.Matrix4,c=null,R=()=>{b=!0},T=w=>{w.updateMatrixWorld();let k=c!==w||!I.equals(w.matrixWorld)||!d.equals(w.projectionMatrix);return k&&(c=w,I.copy(w.matrixWorld),d.copy(w.projectionMatrix)),k},x=e.domElement,M=["pointerdown","pointerup","wheel"];if(p)for(let w of M)x.addEventListener(w,R,{passive:!0});let P=()=>{let{width:w,height:k}=a();if(w===0||k===0)return;let v=Math.floor(w*s),y=Math.floor(k*s);(e.domElement.width!==v||e.domElement.height!==y)&&(e.setPixelRatio(s),e.setSize(w,k,!1),t.aspect=w/k,t.updateProjectionMatrix(),i.updateAspect(w,k),_optionalChain([E, 'optionalCall', _17 => _17(), 'optionalAccess', _18 => _18.setSize, 'call', _19 => _19(w,k,s)]),_optionalChain([g, 'optionalAccess', _20 => _20.setSize, 'call', _21 => _21(w,k)]),R())},L=function(){h=requestAnimationFrame(L);let w=performance.now(),k=(w-C)/1e3;C=w,P(),(o.enableDamping||o.autoRotate)&&o.update(),m&&m.update(r().position),u&&u.update(),_optionalChain([l, 'optionalCall', _22 => _22(k)]);let v=r();if(p){if(!(b||T(v)||w-A>=S))return;b=!1,A=w}let y=_optionalChain([E, 'optionalCall', _23 => _23()]);y?(y.setCamera(v),y.render(k)):e.render(n,v),g&&g.render(n,v),f&&f.render(e)};return{animate:L,dispose:()=>{if(h!==null&&(cancelAnimationFrame(h),h=null),p)for(let w of M)x.removeEventListener(w,R)},invalidate:R}}var W=new de.Vector3(0,0,1);function Ct(e){let n=e.sceneScale||"m",r={mm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:10,lightHeight:20,minDistance:.1,shadowSize:100,scaleFactor:1e3},cm:{cameraDistance:20,near:.1,far:2e3,floorSize:100,lightDistance:25,lightHeight:50,minDistance:.1,shadowSize:100,scaleFactor:100},m:{cameraDistance:10,near:.01,far:2e3,floorSize:50,lightDistance:25,lightHeight:50,minDistance:.001,shadowSize:100,scaleFactor:1},inches:{cameraDistance:15,near:.1,far:2e3,floorSize:80,lightDistance:20,lightHeight:40,minDistance:.1,shadowSize:80,scaleFactor:39.37},feet:{cameraDistance:8,near:.1,far:2e3,floorSize:40,lightDistance:15,lightHeight:30,minDistance:.1,shadowSize:60,scaleFactor:3.28084}}[n],i=_nullishCoalesce(e.look, () => (_chunkAQJPVUH3cjs.h)),o=_chunkAQJPVUH3cjs.i[i];return{sceneScale:n,look:i,camera:{position:_optionalChain([e, 'access', _24 => _24.camera, 'optionalAccess', _25 => _25.position])||ye(_nullishCoalesce(_optionalChain([e, 'access', _26 => _26.environment, 'optionalAccess', _27 => _27.sceneUp]), () => (W)),r.cameraDistance*Math.sqrt(3)),fov:_optionalChain([e, 'access', _28 => _28.camera, 'optionalAccess', _29 => _29.fov])||20,near:_optionalChain([e, 'access', _30 => _30.camera, 'optionalAccess', _31 => _31.near])||r.near,far:_optionalChain([e, 'access', _32 => _32.camera, 'optionalAccess', _33 => _33.far])||r.far,target:_optionalChain([e, 'access', _34 => _34.camera, 'optionalAccess', _35 => _35.target])||new de.Vector3(0,0,0),dynamicNear:_nullishCoalesce(_optionalChain([e, 'access', _36 => _36.camera, 'optionalAccess', _37 => _37.dynamicNear]), () => (!0))},lighting:{enableSunlight:_nullishCoalesce(_optionalChain([e, 'access', _38 => _38.lighting, 'optionalAccess', _39 => _39.enableSunlight]), () => (!0)),sunlightIntensity:_nullishCoalesce(_optionalChain([e, 'access', _40 => _40.lighting, 'optionalAccess', _41 => _41.sunlightIntensity]), () => (1)),sunlightPosition:_optionalChain([e, 'access', _42 => _42.lighting, 'optionalAccess', _43 => _43.sunlightPosition])||qe(_nullishCoalesce(_optionalChain([e, 'access', _44 => _44.environment, 'optionalAccess', _45 => _45.sceneUp]), () => (W)),r.lightDistance,r.lightHeight),ambientLightColor:_optionalChain([e, 'access', _46 => _46.lighting, 'optionalAccess', _47 => _47.ambientLightColor])||new de.Color(4210752),ambientLightIntensity:_nullishCoalesce(_optionalChain([e, 'access', _48 => _48.lighting, 'optionalAccess', _49 => _49.ambientLightIntensity]), () => (o.ambientIntensity)),sunlightColor:_optionalChain([e, 'access', _50 => _50.lighting, 'optionalAccess', _51 => _51.sunlightColor])||16777215,enableHemisphereLight:_nullishCoalesce(_optionalChain([e, 'access', _52 => _52.lighting, 'optionalAccess', _53 => _53.enableHemisphereLight]), () => (o.hemisphereIntensity>0)),hemisphereSkyColor:_nullishCoalesce(_optionalChain([e, 'access', _54 => _54.lighting, 'optionalAccess', _55 => _55.hemisphereSkyColor]), () => (14673663)),hemisphereGroundColor:_nullishCoalesce(_optionalChain([e, 'access', _56 => _56.lighting, 'optionalAccess', _57 => _57.hemisphereGroundColor]), () => (7036754)),hemisphereIntensity:_nullishCoalesce(_optionalChain([e, 'access', _58 => _58.lighting, 'optionalAccess', _59 => _59.hemisphereIntensity]), () => (o.hemisphereIntensity))},environment:{hdrPath:_optionalChain([e, 'access', _60 => _60.environment, 'optionalAccess', _61 => _61.hdrPath])||"/baseHDR.hdr",backgroundColor:_optionalChain([e, 'access', _62 => _62.environment, 'optionalAccess', _63 => _63.backgroundColor])||new de.Color(15790320),enableEnvironmentLighting:_nullishCoalesce(_optionalChain([e, 'access', _64 => _64.environment, 'optionalAccess', _65 => _65.enableEnvironmentLighting]), () => (!0)),sceneUp:_optionalChain([e, 'access', _66 => _66.environment, 'optionalAccess', _67 => _67.sceneUp])||W,showEnvironment:_nullishCoalesce(_optionalChain([e, 'access', _68 => _68.environment, 'optionalAccess', _69 => _69.showEnvironment]), () => (!1)),environmentIntensity:_nullishCoalesce(_optionalChain([e, 'access', _70 => _70.environment, 'optionalAccess', _71 => _71.environmentIntensity]), () => (o.environmentIntensity))},floor:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _72 => _72.floor, 'optionalAccess', _73 => _73.enabled]), () => (!1)),size:_optionalChain([e, 'access', _74 => _74.floor, 'optionalAccess', _75 => _75.size])||r.floorSize,color:_optionalChain([e, 'access', _76 => _76.floor, 'optionalAccess', _77 => _77.color])||new de.Color(8421504),roughness:_nullishCoalesce(_optionalChain([e, 'access', _78 => _78.floor, 'optionalAccess', _79 => _79.roughness]), () => (.7)),metalness:_nullishCoalesce(_optionalChain([e, 'access', _80 => _80.floor, 'optionalAccess', _81 => _81.metalness]), () => (0)),receiveShadow:_nullishCoalesce(_optionalChain([e, 'access', _82 => _82.floor, 'optionalAccess', _83 => _83.receiveShadow]), () => (!0))},render:{enableShadows:_nullishCoalesce(_optionalChain([e, 'access', _84 => _84.render, 'optionalAccess', _85 => _85.enableShadows]), () => (!0)),shadowMapSize:_optionalChain([e, 'access', _86 => _86.render, 'optionalAccess', _87 => _87.shadowMapSize])||2048,antialias:_nullishCoalesce(_optionalChain([e, 'access', _88 => _88.render, 'optionalAccess', _89 => _89.antialias]), () => (!0)),pixelRatio:_optionalChain([e, 'access', _90 => _90.render, 'optionalAccess', _91 => _91.pixelRatio])||Math.min(window.devicePixelRatio,2),toneMapping:_nullishCoalesce(_optionalChain([e, 'access', _92 => _92.render, 'optionalAccess', _93 => _93.toneMapping]), () => (o.toneMapping)),toneMappingExposure:_nullishCoalesce(_optionalChain([e, 'access', _94 => _94.render, 'optionalAccess', _95 => _95.toneMappingExposure]), () => (o.toneMappingExposure)),preserveDrawingBuffer:_nullishCoalesce(_optionalChain([e, 'access', _96 => _96.render, 'optionalAccess', _97 => _97.preserveDrawingBuffer]), () => (!1)),ambientOcclusion:_nullishCoalesce(_optionalChain([e, 'access', _98 => _98.render, 'optionalAccess', _99 => _99.ambientOcclusion]), () => (o.ambientOcclusion)),aoIntensity:_nullishCoalesce(_optionalChain([e, 'access', _100 => _100.render, 'optionalAccess', _101 => _101.aoIntensity]), () => (1)),aoPixelRatio:_nullishCoalesce(_optionalChain([e, 'access', _102 => _102.render, 'optionalAccess', _103 => _103.aoPixelRatio]), () => (1)),onDemand:_nullishCoalesce(_optionalChain([e, 'access', _104 => _104.render, 'optionalAccess', _105 => _105.onDemand]), () => (!0))},controls:{enableDamping:_nullishCoalesce(_optionalChain([e, 'access', _106 => _106.controls, 'optionalAccess', _107 => _107.enableDamping]), () => (!1)),dampingFactor:_optionalChain([e, 'access', _108 => _108.controls, 'optionalAccess', _109 => _109.dampingFactor])||.05,autoRotate:_nullishCoalesce(_optionalChain([e, 'access', _110 => _110.controls, 'optionalAccess', _111 => _111.autoRotate]), () => (!1)),autoRotateSpeed:_optionalChain([e, 'access', _112 => _112.controls, 'optionalAccess', _113 => _113.autoRotateSpeed])||.5,enableZoom:_nullishCoalesce(_optionalChain([e, 'access', _114 => _114.controls, 'optionalAccess', _115 => _115.enableZoom]), () => (!0)),enablePan:_nullishCoalesce(_optionalChain([e, 'access', _116 => _116.controls, 'optionalAccess', _117 => _117.enablePan]), () => (!0)),minDistance:_optionalChain([e, 'access', _118 => _118.controls, 'optionalAccess', _119 => _119.minDistance])||r.minDistance,maxDistance:_optionalChain([e, 'access', _120 => _120.controls, 'optionalAccess', _121 => _121.maxDistance])||1/0},grid:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _122 => _122.grid, 'optionalAccess', _123 => _123.enabled]), () => (!1)),cellSize:_nullishCoalesce(_optionalChain([e, 'access', _124 => _124.grid, 'optionalAccess', _125 => _125.cellSize]), () => (1)),majorEvery:_nullishCoalesce(_optionalChain([e, 'access', _126 => _126.grid, 'optionalAccess', _127 => _127.majorEvery]), () => (10)),cellColor:_nullishCoalesce(_optionalChain([e, 'access', _128 => _128.grid, 'optionalAccess', _129 => _129.cellColor]), () => (8947848)),majorColor:_nullishCoalesce(_optionalChain([e, 'access', _130 => _130.grid, 'optionalAccess', _131 => _131.majorColor]), () => (4473924)),fadeDistance:_nullishCoalesce(_optionalChain([e, 'access', _132 => _132.grid, 'optionalAccess', _133 => _133.fadeDistance]), () => (100)),plane:_nullishCoalesce(_optionalChain([e, 'access', _134 => _134.grid, 'optionalAccess', _135 => _135.plane]), () => (xe(_nullishCoalesce(_optionalChain([e, 'access', _136 => _136.environment, 'optionalAccess', _137 => _137.sceneUp]), () => (W)))))},gizmo:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _138 => _138.gizmo, 'optionalAccess', _139 => _139.enabled]), () => (!1))},edges:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _140 => _140.edges, 'optionalAccess', _141 => _141.enabled]), () => (!1)),color:_optionalChain([e, 'access', _142 => _142.edges, 'optionalAccess', _143 => _143.color]),darken:_optionalChain([e, 'access', _144 => _144.edges, 'optionalAccess', _145 => _145.darken]),width:_nullishCoalesce(_optionalChain([e, 'access', _146 => _146.edges, 'optionalAccess', _147 => _147.width]), () => (1.5)),thresholdAngle:_nullishCoalesce(_optionalChain([e, 'access', _148 => _148.edges, 'optionalAccess', _149 => _149.thresholdAngle]), () => (44)),distanceFade:_nullishCoalesce(_optionalChain([e, 'access', _150 => _150.edges, 'optionalAccess', _151 => _151.distanceFade]), () => (!0)),maxTriangles:_optionalChain([e, 'access', _152 => _152.edges, 'optionalAccess', _153 => _153.maxTriangles]),maxSegments:_optionalChain([e, 'access', _154 => _154.edges, 'optionalAccess', _155 => _155.maxSegments]),screenSpaceFallback:_optionalChain([e, 'access', _156 => _156.edges, 'optionalAccess', _157 => _157.screenSpaceFallback])},measure:{enabled:_nullishCoalesce(_optionalChain([e, 'access', _158 => _158.measure, 'optionalAccess', _159 => _159.enabled]), () => (!1)),snapPixels:_optionalChain([e, 'access', _160 => _160.measure, 'optionalAccess', _161 => _161.snapPixels]),color:_optionalChain([e, 'access', _162 => _162.measure, 'optionalAccess', _163 => _163.color]),labelClassName:_optionalChain([e, 'access', _164 => _164.measure, 'optionalAccess', _165 => _165.labelClassName]),displayUnit:_optionalChain([e, 'access', _166 => _166.measure, 'optionalAccess', _167 => _167.displayUnit]),format:_optionalChain([e, 'access', _168 => _168.measure, 'optionalAccess', _169 => _169.format])},events:{onBackgroundClicked:_optionalChain([e, 'access', _170 => _170.events, 'optionalAccess', _171 => _171.onBackgroundClicked]),onObjectSelected:_optionalChain([e, 'access', _172 => _172.events, 'optionalAccess', _173 => _173.onObjectSelected]),onMeshMetadataClicked:_optionalChain([e, 'access', _174 => _174.events, 'optionalAccess', _175 => _175.onMeshMetadataClicked]),onMeshDoubleClicked:_optionalChain([e, 'access', _176 => _176.events, 'optionalAccess', _177 => _177.onMeshDoubleClicked]),selectionColor:_optionalChain([e, 'access', _178 => _178.events, 'optionalAccess', _179 => _179.selectionColor])||"#ff0000",enableEventHandlers:_nullishCoalesce(_optionalChain([e, 'access', _180 => _180.events, 'optionalAccess', _181 => _181.enableEventHandlers]), () => (!0)),enableKeyboardControls:_nullishCoalesce(_optionalChain([e, 'access', _182 => _182.events, 'optionalAccess', _183 => _183.enableKeyboardControls]), () => (!0)),enableClickToFocus:_nullishCoalesce(_optionalChain([e, 'access', _184 => _184.events, 'optionalAccess', _185 => _185.enableClickToFocus]), () => (!0)),enableDoubleClickZoom:_nullishCoalesce(_optionalChain([e, 'access', _186 => _186.events, 'optionalAccess', _187 => _187.enableDoubleClickZoom]), () => (!0)),onReady:_optionalChain([e, 'access', _188 => _188.events, 'optionalAccess', _189 => _189.onReady]),onFrame:_optionalChain([e, 'access', _190 => _190.events, 'optionalAccess', _191 => _191.onFrame])},onMaxAnisotropy:e.onMaxAnisotropy}}function Mt(e){let{scene:n,renderer:t,lights:r,config:i,pipeline:o,requestRender:a}=e,s=i.look,l=u=>{u.ambientIntensity!==void 0&&(r.ambient.intensity=u.ambientIntensity),u.hemisphereIntensity!==void 0&&!r.hemisphere&&u.hemisphereIntensity>0&&(r.hemisphere=new wt.HemisphereLight(_nullishCoalesce(u.hemisphereSkyColor, () => (i.lighting.hemisphereSkyColor)),_nullishCoalesce(u.hemisphereGroundColor, () => (i.lighting.hemisphereGroundColor)),u.hemisphereIntensity),r.hemisphere.position.copy(_nullishCoalesce(i.environment.sceneUp, () => (W))),n.add(r.hemisphere)),r.hemisphere&&(u.hemisphereIntensity!==void 0&&(r.hemisphere.intensity=u.hemisphereIntensity),u.hemisphereSkyColor!==void 0&&r.hemisphere.color.set(u.hemisphereSkyColor),u.hemisphereGroundColor!==void 0&&r.hemisphere.groundColor.set(u.hemisphereGroundColor)),a()},m=u=>{i.environment.environmentIntensity=u,n.environmentIntensity=u,a()};return{setFillLights:l,setEnvironmentIntensity:m,setToneMappingExposure:u=>{i.render.toneMappingExposure=u,t.toneMappingExposure=u,o.get()&&o.rebuild()},setAoIntensity:u=>{i.render.aoIntensity=u,o.get()&&o.rebuild()},setLook:u=>{let p=_chunkAQJPVUH3cjs.i[u];s=u,t.toneMapping=p.toneMapping,t.toneMappingExposure=p.toneMappingExposure,i.render.toneMapping=p.toneMapping,i.render.toneMappingExposure=p.toneMappingExposure,l({hemisphereIntensity:p.hemisphereIntensity,ambientIntensity:p.ambientIntensity}),m(p.environmentIntensity);let h=o.get()!==null;o.setAmbientOcclusion(p.ambientOcclusion),h&&o.rebuild(),n.traverse(C=>{if(C.userData.source!=="compute")return;let b=C,A=Array.isArray(b.material)?b.material:b.material?[b.material]:[];for(let S of A)"envMapIntensity"in S&&(S.envMapIntensity=p.envMapIntensity)}),a()},getMaterialAppearance:()=>_chunkAQJPVUH3cjs.j.call(void 0, s)}}function Dt(e,n){let t=n.parentElement,r=t?t.clientWidth:window.innerWidth,i=t?t.clientHeight:window.innerHeight,o=new St.PerspectiveCamera(e.camera.fov,r/i,e.camera.near,e.camera.far),a=e.camera.position;return a&&o.position.set(a.x,a.y,a.z),o}function At(e){let n=new De.Scene,t=typeof e.environment.backgroundColor=="string"?new De.Color(e.environment.backgroundColor):e.environment.backgroundColor;return n.background=t||null,n}function Lt(e,n){_chunkAQJPVUH3cjs.v.call(void 0, e,n),_chunkAQJPVUH3cjs.p.call(void 0, _nullishCoalesce(e.environment, () => (void 0)))&&_optionalChain([e, 'access', _192 => _192.environment, 'optionalAccess', _193 => _193.dispose, 'call', _194 => _194()]),e.background instanceof Pt.Texture&&_chunkAQJPVUH3cjs.p.call(void 0, e.background)&&e.background.dispose()}var _EffectComposerjs = require('three/addons/postprocessing/EffectComposer.js');var _RenderPassjs = require('three/addons/postprocessing/RenderPass.js');var _GTAOPassjs = require('three/addons/postprocessing/GTAOPass.js');var _SMAAPassjs = require('three/addons/postprocessing/SMAAPass.js');var _OutputPassjs = require('three/addons/postprocessing/OutputPass.js');var _Passjs = require('three/addons/postprocessing/Pass.js');var Ne={uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},uResolution:{value:new O.Vector2(1,1)},uColor:{value:new O.Color(2236962)},uOpacity:{value:1},uNormalThreshold:{value:.4},uDepthThreshold:{value:.02},uThickness:{value:1},uNear:{value:.1},uFar:{value:1e3},uPerspective:{value:1}},vertexShader:`
|
|
56
|
+
varying vec2 vUv;
|
|
57
|
+
void main() {
|
|
58
|
+
vUv = uv;
|
|
59
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
60
|
+
}
|
|
61
|
+
`,fragmentShader:`
|
|
62
|
+
uniform sampler2D tDiffuse;
|
|
63
|
+
uniform sampler2D tNormal;
|
|
64
|
+
uniform sampler2D tDepth;
|
|
65
|
+
uniform vec2 uResolution;
|
|
66
|
+
uniform vec3 uColor;
|
|
67
|
+
uniform float uOpacity;
|
|
68
|
+
uniform float uNormalThreshold;
|
|
69
|
+
uniform float uDepthThreshold;
|
|
70
|
+
uniform float uThickness;
|
|
71
|
+
uniform float uNear;
|
|
72
|
+
uniform float uFar;
|
|
73
|
+
uniform float uPerspective;
|
|
74
|
+
varying vec2 vUv;
|
|
75
|
+
|
|
76
|
+
float viewZOf(const in float depth) {
|
|
77
|
+
float perspective = (uNear * uFar) / ((uFar - uNear) * depth - uFar);
|
|
78
|
+
float orthographic = -(depth * (uFar - uNear) + uNear);
|
|
79
|
+
return mix(orthographic, perspective, uPerspective);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void main() {
|
|
83
|
+
vec4 color = texture2D(tDiffuse, vUv);
|
|
84
|
+
vec2 texel = uThickness / uResolution;
|
|
85
|
+
|
|
86
|
+
vec2 offsetA = vec2(texel.x, texel.y);
|
|
87
|
+
vec2 offsetB = vec2(texel.x, -texel.y);
|
|
88
|
+
|
|
89
|
+
float z0 = viewZOf(texture2D(tDepth, vUv + offsetA).x);
|
|
90
|
+
float z1 = viewZOf(texture2D(tDepth, vUv - offsetA).x);
|
|
91
|
+
float z2 = viewZOf(texture2D(tDepth, vUv + offsetB).x);
|
|
92
|
+
float z3 = viewZOf(texture2D(tDepth, vUv - offsetB).x);
|
|
93
|
+
float zCenter = viewZOf(texture2D(tDepth, vUv).x);
|
|
94
|
+
// Normalized by center depth, not absolute Z: keeps the response scale-invariant across
|
|
95
|
+
// the viewer's mm-to-m scenes (an absolute threshold would be noise far away, blind up close).
|
|
96
|
+
float depthDelta = (abs(z0 - z1) + abs(z2 - z3)) / max(abs(zCenter), 1e-6);
|
|
97
|
+
float depthEdge = step(uDepthThreshold, depthDelta);
|
|
98
|
+
|
|
99
|
+
vec3 n0 = texture2D(tNormal, vUv + offsetA).rgb * 2.0 - 1.0;
|
|
100
|
+
vec3 n1 = texture2D(tNormal, vUv - offsetA).rgb * 2.0 - 1.0;
|
|
101
|
+
vec3 n2 = texture2D(tNormal, vUv + offsetB).rgb * 2.0 - 1.0;
|
|
102
|
+
vec3 n3 = texture2D(tNormal, vUv - offsetB).rgb * 2.0 - 1.0;
|
|
103
|
+
float normalDelta = (1.0 - dot(n0, n1)) + (1.0 - dot(n2, n3));
|
|
104
|
+
float normalEdge = step(uNormalThreshold, normalDelta);
|
|
105
|
+
|
|
106
|
+
float edge = max(depthEdge, normalEdge) * uOpacity;
|
|
107
|
+
gl_FragColor = vec4(mix(color.rgb, uColor, edge), color.a);
|
|
108
|
+
}
|
|
109
|
+
`},Ae=class extends _Passjs.Pass{constructor(t,r,i,o,a={}){super();_chunkBYLIBOAUcjs.a.call(void 0, this,"camera");_chunkBYLIBOAUcjs.a.call(void 0, this,"scene");_chunkBYLIBOAUcjs.a.call(void 0, this,"normalMaterial");_chunkBYLIBOAUcjs.a.call(void 0, this,"edgeMaterial");_chunkBYLIBOAUcjs.a.call(void 0, this,"fsQuad");_chunkBYLIBOAUcjs.a.call(void 0, this,"normalTarget",null);_chunkBYLIBOAUcjs.a.call(void 0, this,"width");_chunkBYLIBOAUcjs.a.call(void 0, this,"height");this.scene=t,this.camera=r,this.width=Math.max(1,i),this.height=Math.max(1,o),this.normalMaterial=new O.MeshNormalMaterial,this.normalMaterial.blending=O.NoBlending,this.edgeMaterial=new O.ShaderMaterial({uniforms:O.UniformsUtils.clone(Ne.uniforms),vertexShader:Ne.vertexShader,fragmentShader:Ne.fragmentShader});let s=this.edgeMaterial.uniforms;s.uColor.value=new O.Color(_nullishCoalesce(a.color, () => (2236962))),s.uOpacity.value=_nullishCoalesce(a.opacity, () => (1)),s.uNormalThreshold.value=_nullishCoalesce(a.normalThreshold, () => (.4)),s.uDepthThreshold.value=_nullishCoalesce(a.depthThreshold, () => (.02)),s.uThickness.value=_nullishCoalesce(a.thickness, () => (1)),this.fsQuad=new (0, _Passjs.FullScreenQuad)(this.edgeMaterial),this.needsSwap=!0}acquireNormalTarget(){if(!this.normalTarget){let t=new O.DepthTexture(this.width,this.height);this.normalTarget=new O.WebGLRenderTarget(this.width,this.height,{minFilter:O.NearestFilter,magFilter:O.NearestFilter,depthTexture:t})}return this.normalTarget}setSize(t,r){this.width=Math.max(1,t),this.height=Math.max(1,r),_optionalChain([this, 'access', _195 => _195.normalTarget, 'optionalAccess', _196 => _196.setSize, 'call', _197 => _197(this.width,this.height)])}render(t,r,i){let o=this.acquireNormalTarget(),a=t.getRenderTarget(),s=t.autoClear,l=t.getClearColor(new O.Color),m=t.getClearAlpha(),f=this.scene.overrideMaterial;t.setRenderTarget(o),t.setClearColor(7829503,1),t.autoClear=!0,this.scene.overrideMaterial=this.normalMaterial,t.render(this.scene,this.camera),this.scene.overrideMaterial=f,t.setClearColor(l,m),t.autoClear=s;let E=this.edgeMaterial.uniforms;E.tDiffuse.value=i.texture,E.tNormal.value=o.texture,E.tDepth.value=o.depthTexture,E.uResolution.value.set(this.width,this.height);let g=this.camera;E.uPerspective.value=g.isPerspectiveCamera?1:0,E.uNear.value=_nullishCoalesce(this.camera.near, () => (.1)),E.uFar.value=_nullishCoalesce(this.camera.far, () => (1e3)),t.setRenderTarget(this.renderToScreen?null:r),this.fsQuad.render(t),t.setRenderTarget(a)}dispose(){_optionalChain([this, 'access', _198 => _198.normalTarget, 'optionalAccess', _199 => _199.dispose, 'call', _200 => _200()]),this.normalMaterial.dispose(),this.edgeMaterial.dispose(),this.fsQuad.dispose()}};function Ot(e,n,t,r,i,o){let a=new (0, _EffectComposerjs.EffectComposer)(e),s=new (0, _RenderPassjs.RenderPass)(n,t);a.addPass(s);let l=null;(_nullishCoalesce(o.ambientOcclusion, () => (!0)))&&(l=new (0, _GTAOPassjs.GTAOPass)(n,t,r,i),l.blendIntensity=_nullishCoalesce(o.aoIntensity, () => (1)),l.updateGtaoMaterial({screenSpaceRadius:!0}),a.addPass(l));let m=typeof o.edgeDetection=="object"?o.edgeDetection:{},f=new Ae(n,t,r,i,m);f.enabled=!!o.edgeDetection,a.addPass(f);let E=new _SMAAPassjs.SMAAPass;a.addPass(E);let g=new _OutputPassjs.OutputPass;a.addPass(g),e.toneMapping=o.toneMapping,e.toneMappingExposure=o.toneMappingExposure;let u=_nullishCoalesce(o.aoPixelRatio, () => (1));return a.setSize(r,i),{render:p=>a.render(p),setSize:(p,h,C)=>{a.setPixelRatio(Math.min(C,u)),a.setSize(p,h)},setCamera:p=>{if(s.camera=p,f.camera=p,!l)return;l.camera=p;let h=p.isPerspectiveCamera?1:0;l.gtaoMaterial.defines.PERSPECTIVE_CAMERA!==h&&(l.gtaoMaterial.defines.PERSPECTIVE_CAMERA=h,l.gtaoMaterial.needsUpdate=!0)},setEdgeDetection:p=>{f.enabled=p},edgeDetectionEnabled:()=>f.enabled,dispose:()=>{a.dispose(),_optionalChain([l, 'optionalAccess', _201 => _201.dispose, 'call', _202 => _202()]),f.dispose(),E.dispose(),g.dispose()}}}function It(e){let{renderer:n,scene:t,getActiveCamera:r,getCanvasSize:i,pixelRatio:o,config:a,requestRender:s}=e,l=null,m=!!a.render.ambientOcclusion,f=!1,E=!1,g=p=>{let{width:h,height:C}=i(),b=Ot(n,t,r(),Math.max(1,h),Math.max(1,C),{toneMapping:_nullishCoalesce(a.render.toneMapping, () => (Ft.NeutralToneMapping)),toneMappingExposure:_nullishCoalesce(a.render.toneMappingExposure, () => (1)),ambientOcclusion:p,aoIntensity:a.render.aoIntensity,aoPixelRatio:a.render.aoPixelRatio,edgeDetection:!1});return b.setSize(Math.max(1,h),Math.max(1,C),o),b},u=()=>{if(!(m||f)){_optionalChain([l, 'optionalAccess', _203 => _203.dispose, 'call', _204 => _204()]),l=null,s();return}(!l||E!==m)&&(_optionalChain([l, 'optionalAccess', _205 => _205.dispose, 'call', _206 => _206()]),l=g(m),E=m),l.setEdgeDetection(f),s()};return{get:()=>l,sync:u,rebuild:()=>{_optionalChain([l, 'optionalAccess', _207 => _207.dispose, 'call', _208 => _208()]),l=null,u()},setAmbientOcclusion:p=>{m=p,u()},setEdgeFallback:p=>{p!==f&&(f=p,u())},isEdgeFallbackActive:()=>f,dispose:()=>{_optionalChain([l, 'optionalAccess', _209 => _209.dispose, 'call', _210 => _210()]),l=null}}}var _OrbitControlsjs = require('three/addons/controls/OrbitControls.js');function kt(e,n,t){let r=new (0, _OrbitControlsjs.OrbitControls)(e,n),i=t.camera.target;return i&&r.target.set(i.x,i.y,i.z),r.enableDamping=t.controls.enableDamping||!1,r.dampingFactor=t.controls.dampingFactor||.05,r.autoRotate=t.controls.autoRotate||!1,r.autoRotateSpeed=t.controls.autoRotateSpeed||.5,r.enableZoom=_nullishCoalesce(t.controls.enableZoom, () => (!0)),r.enablePan=_nullishCoalesce(t.controls.enablePan, () => (!0)),r.minDistance=t.controls.minDistance||.001,r.maxDistance=t.controls.maxDistance||1/0,r.screenSpacePanning=!1,r.maxPolarAngle=Math.PI,r.update(),r}var _HDRLoaderjs = require('three/addons/loaders/HDRLoader.js');function zt(e,n,t,r){t.environment.enableEnvironmentLighting?new (0, _HDRLoaderjs.HDRLoader)().load(t.environment.hdrPath||"/baseHDR.hdr",function(i){if(r()){i.dispose();return}if(!_optionalChain([i, 'optionalAccess', _211 => _211.image])){_chunkAQJPVUH3cjs.c.call(void 0, ).warn("HDR loaded without image data; skipping environment map."),_optionalChain([i, 'optionalAccess', _212 => _212.dispose, 'call', _213 => _213()]),_optionalChain([t, 'access', _214 => _214.events, 'access', _215 => _215.onReady, 'optionalCall', _216 => _216()]);return}i.mapping=N.EquirectangularReflectionMapping;let o=new N.PMREMGenerator(n);o.compileEquirectangularShader();let a=o.fromEquirectangular(i).texture;o.dispose(),e.environment=a,e.environmentIntensity=_nullishCoalesce(t.environment.environmentIntensity, () => (1));let s=Xe(_nullishCoalesce(t.environment.sceneUp, () => (W)));e.environmentRotation.copy(s),t.environment.showEnvironment?(e.background=i,e.backgroundRotation.copy(s)):i.dispose(),_optionalChain([t, 'access', _217 => _217.events, 'access', _218 => _218.onReady, 'optionalCall', _219 => _219()])},void 0,function(i){r()||(_chunkAQJPVUH3cjs.c.call(void 0, ).warn("HDR texture could not be loaded, falling back to basic lighting:",i),_optionalChain([t, 'access', _220 => _220.events, 'access', _221 => _221.onReady, 'optionalCall', _222 => _222()]))}):_optionalChain([t, 'access', _223 => _223.events, 'access', _224 => _224.onReady, 'optionalCall', _225 => _225()])}function _t(e,n){let t=n.floor.size,r=new N.PlaneGeometry(t,t),i=typeof n.floor.color=="string"?new N.Color(n.floor.color):n.floor.color,o=new N.MeshStandardMaterial({color:i,roughness:n.floor.roughness,metalness:n.floor.metalness,side:N.DoubleSide}),a=new N.Mesh(r,o);a.userData.id="floor",a.name="floor";let s=(_optionalChain([n, 'access', _226 => _226.environment, 'optionalAccess', _227 => _227.sceneUp])||W).clone().normalize();a.quaternion.setFromUnitVectors(new N.Vector3(0,0,1),s),a.position.set(0,0,0),n.floor.receiveShadow&&n.render.enableShadows&&(a.receiveShadow=!0),e.add(a)}function Vt(e,n,t,r){let i=new Set,o=new Map,a=new F.Raycaster,s=new F.Vector2,l=new F.Vector2,m=()=>t.getActiveCamera(),f=d=>{let c=d;for(;c;){if(!c.visible)return!1;c=c.parent}return!0},E=()=>{let d=Q(n);if(d.isEmpty()){_chunkAQJPVUH3cjs.c.call(void 0, ).warn("No objects to fit to view");return}t.frameBounds(d,!1)},g=typeof r.events.selectionColor=="string"?new F.Color(r.events.selectionColor):r.events.selectionColor instanceof F.Color?r.events.selectionColor:new F.Color("#ff0000"),u=()=>{i.forEach(d=>{let c=d;if(o.has(d)){let R=o.get(d),T=c.material;T instanceof F.Material?T.dispose():Array.isArray(T)&&T.forEach(M=>M.dispose()),c.material=R,o.delete(d);let x=d;for(;x.parent;)x=x.parent;x!==n&&(R instanceof F.Material?R.dispose():R.forEach(M=>M.dispose()))}}),i.clear()},p=d=>{let c=d;if(!(c.material instanceof F.Material))return!1;o.set(d,c.material);let R=c.material.clone();return d instanceof F.Mesh&&"emissive"in R?R.emissive=g.clone():"color"in R&&(R.color=g.clone()),c.material=R,!0},h=()=>{let d=Q(n),c=d.isEmpty()?1:d.getSize(new F.Vector3).length();a.params.Points.threshold=c*.01},C=d=>{l.set(d.clientX,d.clientY)},b=d=>{let c=new F.Vector2(d.clientX,d.clientY);if(l.distanceTo(c)>5)return;let R=e.getBoundingClientRect();s.x=(d.clientX-R.left)/R.width*2-1,s.y=-((d.clientY-R.top)/R.height)*2+1,h(),a.setFromCamera(s,m());let T=a.intersectObjects(n.children,!0).filter(x=>f(x.object));if(T.length>0){let x=T[0].object;i.has(x)||(u(),i.add(x),p(x),_optionalChain([r, 'access', _228 => _228.events, 'optionalAccess', _229 => _229.onObjectSelected, 'optionalCall', _230 => _230(x)]),x instanceof F.Mesh&&Object.keys(x.userData).length>0&&_optionalChain([r, 'access', _231 => _231.events, 'optionalAccess', _232 => _232.onMeshMetadataClicked, 'optionalCall', _233 => _233(x.userData)]))}else u(),_optionalChain([r, 'access', _234 => _234.events, 'optionalAccess', _235 => _235.onBackgroundClicked, 'optionalCall', _236 => _236({x:s.x,y:s.y})])},A=d=>{let c=e.getBoundingClientRect();s.x=(d.clientX-c.left)/c.width*2-1,s.y=-((d.clientY-c.top)/c.height)*2+1,h(),a.setFromCamera(s,m());let R=a.intersectObjects(n.children,!0).filter(M=>f(M.object));if(R.length===0)return;let T=R[0].object;if(_optionalChain([r, 'access', _237 => _237.events, 'optionalAccess', _238 => _238.onMeshDoubleClicked, 'optionalCall', _239 => _239(T)]),!_optionalChain([r, 'access', _240 => _240.events, 'optionalAccess', _241 => _241.enableDoubleClickZoom]))return;let x=new F.Box3().setFromObject(T);x.isEmpty()||t.frameBounds(x,!0)},S=d=>{if(_optionalChain([r, 'access', _242 => _242.events, 'optionalAccess', _243 => _243.enableKeyboardControls]))switch(d.key.toLowerCase()){case"f":d.preventDefault(),E();break;case"escape":d.preventDefault(),u();break;case" ":d.preventDefault(),E();break}};return _optionalChain([r, 'access', _244 => _244.events, 'optionalAccess', _245 => _245.enableClickToFocus])&&(e.addEventListener("mousedown",C),e.addEventListener("click",b),e.addEventListener("dblclick",A)),_optionalChain([r, 'access', _246 => _246.events, 'optionalAccess', _247 => _247.enableKeyboardControls])&&(e.setAttribute("tabindex","0"),e.addEventListener("keydown",S)),{dispose:()=>{e.removeEventListener("mousedown",C),e.removeEventListener("click",b),e.removeEventListener("dblclick",A),e.removeEventListener("keydown",S),u()},fitToView:E,clearSelection:u}}function jt(e,n){let t=new te.AmbientLight(n.lighting.ambientLightColor,n.lighting.ambientLightIntensity);e.add(t);let r=null;if(n.lighting.enableHemisphereLight){r=new te.HemisphereLight(n.lighting.hemisphereSkyColor,n.lighting.hemisphereGroundColor,n.lighting.hemisphereIntensity);let a=_nullishCoalesce(n.environment.sceneUp, () => (W));r.position.copy(a),e.add(r)}if(!n.lighting.enableSunlight)return{ambient:t,hemisphere:r,sun:null};let i=new te.DirectionalLight(_nullishCoalesce(n.lighting.sunlightColor, () => (16777215)),n.lighting.sunlightIntensity),o=n.lighting.sunlightPosition;return o&&i.position.set(o.x,o.y,o.z),n.render.enableShadows?(i.castShadow=!0,i.shadow.mapSize.width=n.render.shadowMapSize||2048,i.shadow.mapSize.height=n.render.shadowMapSize||2048,i.shadow.bias=-1e-4,i.shadow.normalBias=.02,i.shadow.radius=4,e.add(i),e.add(i.target),{ambient:t,hemisphere:r,sun:i}):(e.add(i),{ambient:t,hemisphere:r,sun:null})}function Nt(e,n){if(n.isEmpty())return;let t=n.getCenter(new te.Vector3),r=n.getSize(new te.Vector3).length()*.5*1.2,i=e.shadow.camera;i.left=-r,i.right=r,i.top=r,i.bottom=-r,e.target.position.copy(t),e.target.updateMatrixWorld();let o=e.position.distanceTo(t);i.near=Math.max(r*.01,o-r),i.far=o+r,i.updateProjectionMatrix()}function Gt(e,n,t){let r=new pe.WebGLRenderer({antialias:n.render.antialias,canvas:e,alpha:!0,powerPreference:"high-performance",preserveDrawingBuffer:n.render.preserveDrawingBuffer,logarithmicDepthBuffer:!1}),i=e.parentElement,o=i?i.clientWidth:window.innerWidth,a=i?i.clientHeight:window.innerHeight;return i&&(e.style.width="100%",e.style.height="100%",e.style.display="block"),r.setSize(o,a,!1),r.setPixelRatio(t),n.render.enableShadows&&(r.shadowMap.enabled=!0,r.shadowMap.type=pe.VSMShadowMap),r.toneMapping=n.render.toneMapping,r.toneMappingExposure=_nullishCoalesce(n.render.toneMappingExposure, () => (1)),r.outputColorSpace=pe.SRGBColorSpace,r.sortObjects=!0,r}var ln=function(e,n){let t=Ct(n||{}),r=_optionalChain([t, 'access', _248 => _248.environment, 'optionalAccess', _249 => _249.sceneUp])||W,i=_nullishCoalesce(t.render.pixelRatio, () => (Math.min(window.devicePixelRatio,2))),o=At(t),a=Dt(t,e);a.up.copy(r);let s=Gt(e,t,i);_chunkAQJPVUH3cjs.t.call(void 0, s.capabilities.getMaxAnisotropy()),_optionalChain([n, 'optionalAccess', _250 => _250.onMaxAnisotropy, 'optionalCall', _251 => _251(s.capabilities.getMaxAnisotropy())]);let l=_chunkAQJPVUH3cjs.s.call(void 0, ),m=kt(a,e,t),f=Ke({scene:o,perspective:a,controls:m,onActiveCameraChange:()=>{},up:r}),E=()=>f.getActiveCamera(),g=!1;zt(o,s,t,()=>g);let u=jt(o,t),p=u.sun,h=()=>{p&&Nt(p,Q(o))};_optionalChain([t, 'access', _252 => _252.floor, 'optionalAccess', _253 => _253.enabled])&&_t(o,t);let C=_optionalChain([t, 'access', _254 => _254.floor, 'optionalAccess', _255 => _255.enabled])?_nullishCoalesce(o.children.find(H=>H.userData.id==="floor"), () => (null)):null,b=t.grid.enabled?ht({cellSize:t.grid.cellSize,majorEvery:t.grid.majorEvery,cellColor:t.grid.cellColor,majorColor:t.grid.majorColor,fadeDistance:t.grid.fadeDistance,plane:t.grid.plane}):null;b&&o.add(b.object);let A=()=>{b&&b.fitToContent(Q(o))},S=t.gizmo.enabled?xt({camera:a,domElement:e,controller:f}):null,I=_nullishCoalesce(t.grid.plane, () => (xe(r))),d=new Ut.Vector3(I==="x"?1:0,I==="y"?1:0,I==="z"?1:0),c=r.clone().normalize(),R=()=>{let H=[];return _optionalChain([b, 'optionalAccess', _256 => _256.object, 'access', _257 => _257.visible])&&H.push(d),t.floor.enabled&&_optionalChain([C, 'optionalAccess', _258 => _258.visible])&&H.push(c),H},T=t.camera.dynamicNear?yt({camera:a,scene:o,groundNormals:R}):null,x=_nullishCoalesce(e.parentElement, () => (e)),M=t.measure.enabled?Rt(x,o):null,P=t.measure.enabled&&M?vt({canvas:e,scene:o,getActiveCamera:E,labelLayer:M,options:{snapPixels:t.measure.snapPixels,color:t.measure.color,labelClassName:t.measure.labelClassName,displayUnit:t.measure.displayUnit,format:t.measure.format}}):null,L=t.events.enableEventHandlers!==!1?Vt(e,o,f,t):{dispose:()=>{},fitToView:()=>{},clearSelection:()=>{}},Y=5,w=0,k=0,v=H=>{w=H.clientX,k=H.clientY},y=H=>Math.hypot(H.clientX-w,H.clientY-k)>Y,z=H=>{if(!y(H)){if(_optionalChain([P, 'optionalAccess', _259 => _259.handleClick, 'call', _260 => _260(H)])){H.stopImmediatePropagation();return}_optionalChain([S, 'optionalAccess', _261 => _261.handleClick, 'call', _262 => _262(H)])&&H.stopImmediatePropagation()}};(S||P)&&(e.addEventListener("mousedown",v,{capture:!0}),e.addEventListener("click",z,{capture:!0}));let j=H=>_optionalChain([P, 'optionalAccess', _263 => _263.handleMove, 'call', _264 => _264(H)]);P&&e.addEventListener("mousemove",j,{passive:!0});let V=()=>{},G=H=>{Et(H,{color:t.edges.color,darken:t.edges.darken,width:t.edges.width,thresholdAngle:t.edges.thresholdAngle,distanceFade:t.edges.distanceFade,maxTriangles:t.edges.maxTriangles,maxSegments:t.edges.maxSegments}).then(()=>{be(H),V()})},be=H=>{if(t.edges.screenSpaceFallback===!1)return;let ae=!1;H.traverse(Xt=>{_optionalChain([Xt, 'access', _265 => _265.userData, 'optionalAccess', _266 => _266.edgesSkipped])===we&&(ae=!0)}),U.setEdgeFallback(ae)},Z=H=>{ft(H),U.setEdgeFallback(!1),V()},ee=e.parentElement,re=()=>ee?{width:ee.clientWidth,height:ee.clientHeight}:{width:window.innerWidth,height:window.innerHeight},U=It({renderer:s,scene:o,getActiveCamera:E,getCanvasSize:re,pixelRatio:i,config:t,requestRender:()=>V()});U.sync();let q=Mt({scene:o,renderer:s,lights:u,config:t,pipeline:U,requestRender:()=>V()}),{animate:ve,dispose:ie,invalidate:ue}=Ht(s,o,a,E,f,m,re,i,t.events.onFrame,b,S,()=>U.get(),M,T,_nullishCoalesce(t.render.onDemand, () => (!0)));V=ue,ve(),o.up.set(r.x,r.y,r.z),h(),A();let Pe=H=>{H.userData.source="user",o.add(H)},Bt=H=>{H.removeFromParent(),_chunkAQJPVUH3cjs.v.call(void 0, H)},Wt=()=>{o.children.filter(ae=>ae.userData.source==="user").forEach(ae=>{ae.removeFromParent(),_chunkAQJPVUH3cjs.v.call(void 0, ae)})},qt=()=>{g||(g=!0,ie(),L.dispose(),(S||P)&&(e.removeEventListener("mousedown",v,{capture:!0}),e.removeEventListener("click",z,{capture:!0})),P&&e.removeEventListener("mousemove",j),_optionalChain([P, 'optionalAccess', _267 => _267.dispose, 'call', _268 => _268()]),_optionalChain([M, 'optionalAccess', _269 => _269.dispose, 'call', _270 => _270()]),_optionalChain([S, 'optionalAccess', _271 => _271.dispose, 'call', _272 => _272()]),_optionalChain([b, 'optionalAccess', _273 => _273.dispose, 'call', _274 => _274()]),U.dispose(),f.dispose(),m.dispose(),s.dispose(),s.forceContextLoss(),Lt(o),l())};return{scene:o,camera:a,controls:m,renderer:s,cameraController:f,grid:b,gizmo:S,measureTool:P,applyEdges:G,clearEdges:Z,invalidate:ue,setAmbientOcclusion:U.setAmbientOcclusion,setLook:q.setLook,setFillLights:q.setFillLights,setEnvironmentIntensity:q.setEnvironmentIntensity,setToneMappingExposure:q.setToneMappingExposure,setAoIntensity:q.setAoIntensity,getMaterialAppearance:q.getMaterialAppearance,updateShadowBounds:h,updateGridScale:A,dispose:qt,fitToView:L.fitToView,clearSelection:L.clearSelection,addUserGeometry:Pe,removeUserGeometry:Bt,clearUserGeometry:Wt}};exports.DEFAULT_LOOK = _chunkAQJPVUH3cjs.h; exports.ErrorCodes = _chunkAQJPVUH3cjs.a; exports.LOOKS = _chunkAQJPVUH3cjs.g; exports.LOOK_PRESETS = _chunkAQJPVUH3cjs.i; exports.VisualizationError = _chunkAQJPVUH3cjs.b; exports.enableDebugLogging = _chunkAQJPVUH3cjs.e; exports.getLogger = _chunkAQJPVUH3cjs.c; exports.initThree = ln; exports.materialAppearanceForLook = _chunkAQJPVUH3cjs.j; exports.setLogger = _chunkAQJPVUH3cjs.d; exports.updateScene = Jt;
|
|
110
|
+
//# sourceMappingURL=render.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\felix\\coding\\selva\\packages\\visualization\\dist\\render.cjs"],"names":[],"mappings":"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CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,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AAqB,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAA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","file":"C:\\Users\\felix\\coding\\selva\\packages\\visualization\\dist\\render.cjs","sourcesContent":[null]}
|