Files

1 line
7.4 KiB
JavaScript

(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,614419,e=>{"use strict";var t=e.i(190072);function i(e,t,i,o,r,a,l){n(e,t,i,[o,a,-r],[o,a,r],[o,l,r],[o,l,-r],[1,0,0]),n(e,t,i,[-o,a,r],[-o,a,-r],[-o,l,-r],[-o,l,r],[-1,0,0]),n(e,t,i,[o,a,r],[-o,a,r],[-o,l,r],[o,l,r],[0,0,1]),n(e,t,i,[-o,a,-r],[o,a,-r],[o,l,-r],[-o,l,-r],[0,0,-1]),n(e,t,i,[-o,l,-r],[-o,l,r],[o,l,r],[o,l,-r],[0,1,0]),n(e,t,i,[-o,a,-r],[o,a,-r],[o,a,r],[-o,a,r],[0,-1,0])}function o(e,t,i,o){let r=[];for(let n=0;n<=o;n++){let a=2*Math.PI*n/o;r.push([e*Math.cos(a),i,t*Math.sin(a)])}return r}function r(e,t,i,o,r,a,l){for(let s=0;s<a;s++){let a=o[s],u=o[s+1],f=r[s+1],m=r[s];n(e,t,i,a,u,f,m,l(a,u,f,m))}}function n(e,t,i,o,r,n,a,l){let s=(n[1]-o[1])*(r[2]-o[2])-(n[2]-o[2])*(r[1]-o[1]),u=(n[2]-o[2])*(r[0]-o[0])-(n[0]-o[0])*(r[2]-o[2]),f=(n[0]-o[0])*(r[1]-o[1])-(n[1]-o[1])*(r[0]-o[0]),m=s*l[0]+u*l[1]+f*l[2]<0;m&&(s=-s,u=-u,f=-f);let h=Math.sqrt(s*s+u*u+f*f)||1;s/=h,u/=h,f/=h;let p=Math.hypot(r[0]-o[0],r[1]-o[1],r[2]-o[2]),c=Math.hypot(a[0]-o[0],a[1]-o[1],a[2]-o[2]);m?(e.push(o[0],o[1],o[2],r[0],r[1],r[2],n[0],n[1],n[2]),i.push(0,0,p,0,p,c),e.push(o[0],o[1],o[2],n[0],n[1],n[2],a[0],a[1],a[2]),i.push(0,0,p,c,0,c)):(e.push(o[0],o[1],o[2],n[0],n[1],n[2],r[0],r[1],r[2]),i.push(0,0,p,c,p,0),e.push(o[0],o[1],o[2],a[0],a[1],a[2],n[0],n[1],n[2]),i.push(0,0,0,c,p,c));for(let e=0;e<6;e++)t.push(s,u,f)}e.s(["buildCupolaGeometry",0,function(e){let a=Math.max(.2,e.width),l=Math.max(.2,e.depth),s=Math.max(.3,e.height),u=a/2,f=l/2,m=.32*s,h=.05*s,p=h+.42*s,c=p+.06*s,d=c+m,M=.12*Math.min(u,f),g=.22*Math.min(u,f),w=[],y=[],b=[];i(w,y,b,u+M,f+M,0,h),i(w,y,b,u,f,h,p),i(w,y,b,u+g,f+g,p,c),function(e,t,i,o,r,a,l){let s=(l-a)*.12,u=a+s,f=l-s-u,m=f/6,h=.9*m;for(let{map:a,halfU:l}of[{map:(e,t,i)=>[e,t,r+i],halfU:.82*o},{map:(e,t,i)=>[e,t,-(r+i)],halfU:.82*o},{map:(e,t,i)=>[o+i,t,e],halfU:.82*r},{map:(e,t,i)=>[-(o+i),t,e],halfU:.82*r}]){var p,c;let o=(p=a(0,0,1),c=a(0,0,0),[p[0]-c[0],p[1]-c[1],p[2]-c[2]]),r=[o[0],1,o[2]],s=[o[0],-1,o[2]];for(let o=1;o<=5;o++){let p=u+f*o/5,c=a(-l,p,0),d=a(l,p,0),M=a(l,p-m,h),g=a(-l,p-m,h);n(e,t,i,c,d,M,g,r),n(e,t,i,c,d,M,g,s)}}}(w,y,b,u,f,h,p);let v=u+g,x=f+g;if("pyramid"===e.roofStyle?function(e,t,i,o,r,n,a){let l=[0,a,0],s=[[o,n,-r],[o,n,r],[-o,n,r],[-o,n,-r]];for(let n=0;n<4;n++){let a=s[n],u=s[(n+1)%4],f=(a[0]+u[0])/2,m=(a[2]+u[2])/2;!function(e,t,i,o,r,n,a){let l=(r[1]-o[1])*(n[2]-o[2])-(r[2]-o[2])*(n[1]-o[1]),s=(r[2]-o[2])*(n[0]-o[0])-(r[0]-o[0])*(n[2]-o[2]),u=(r[0]-o[0])*(n[1]-o[1])-(r[1]-o[1])*(n[0]-o[0]),f=l*a[0]+s*a[1]+u*a[2]<0;f&&(l=-l,s=-s,u=-u);let m=Math.sqrt(l*l+s*s+u*u)||1;l/=m,s/=m,u/=m,f?e.push(o[0],o[1],o[2],n[0],n[1],n[2],r[0],r[1],r[2]):e.push(o[0],o[1],o[2],r[0],r[1],r[2],n[0],n[1],n[2]),i.push(0,0,1,0,0,1);for(let e=0;e<3;e++)t.push(l,s,u)}(e,t,i,a,u,l,[f,Math.max(o,r),m])}}(w,y,b,v,x,c,d):function(e,t,i,n,a,l,s){let u=o(n,a,l,20);for(let f=1;f<=6;f++){let m=Math.PI/2*(f/6),h=Math.cos(m),p=o(n*h,a*h,l+s*Math.sin(m),20);r(e,t,i,u,p,20,(e,t,i)=>[(e[0]+i[0])/2,(e[1]+i[1])/2-l,(e[2]+i[2])/2]),u=p}}(w,y,b,v,x,c,m),e.finial){var S,R,A,P,T,k;let e=.05*Math.min(a,l),t=d+.18*m;S=w,R=y,A=b,P=.45*e,T=d,k=t,r(S,R,A,o(P,P,T,12),o(P,P,k,12),12,(e,t,i)=>[(e[0]+i[0])/2,0,(e[2]+i[2])/2]),function(e,t,i,n,a){let l=o(0,0,a-n,14);for(let s=1;s<=8;s++){let u=s/8*Math.PI-Math.PI/2,f=n*Math.sin(u),m=n*Math.cos(u),h=o(m,m,a+f,14);r(e,t,i,l,h,14,(e,t,i)=>[(e[0]+i[0])/2,(e[1]+i[1])/2-a,(e[2]+i[2])/2]),l=h}}(w,y,b,e,t+.7*e)}let L=new t.BufferGeometry;return L.setAttribute("position",new t.Float32BufferAttribute(w,3)),L.setAttribute("normal",new t.Float32BufferAttribute(y,3)),L.setAttribute("uv",new t.Float32BufferAttribute(b,2)),L.computeBoundingSphere(),L}])},707772,e=>{"use strict";var t=e.i(843476);e.i(958123);var i=e.i(191493),o=e.i(279278);e.i(592888);var r=e.i(639001),n=e.i(271645),a=e.i(190072);function l(e,t,l){let s=(0,o.useLiveNodeOverrides)(e=>t?e.get(t.id)?.trim:void 0),u=(0,n.useMemo)(()=>t&&s?{...t,trim:s}:t,[t,s]);!function(e){if(!e)return;let t=(0,i.normalizeRoofSegmentTrim)(e);JSON.stringify([e.width,e.depth,t.left,t.right,t.front,t.back,t.frontLeftX,t.frontLeftZ,t.frontRightX,t.frontRightZ,t.backLeftX,t.backLeftZ,t.backRightX,t.backRightZ])}(u),l.elements.join(",");let f=(0,n.useMemo)(()=>{let t;if(!e||!u||!((t=(0,i.normalizeRoofSegmentTrim)(u)).left>0)&&!(t.right>0)&&!(t.front>0)&&!(t.back>0)&&!(t.frontLeftX>0)&&!(t.frontLeftZ>0)&&!(t.frontRightX>0)&&!(t.frontRightZ>0)&&!(t.backLeftX>0)&&!(t.backLeftZ>0)&&!(t.backRightX>0)&&!(t.backRightZ>0))return null;let o=e.clone();o.applyMatrix4(l);let n=(0,r.clipGeometryBySegmentTrim)(o,u);if(!n)return null;let s=new a.Matrix4().copy(l).invert();n.applyMatrix4(s),n.computeVertexNormals();let f=e.groups.reduce((e,t)=>Math.max(e,t.materialIndex??0),0);for(let e of n.groups)(e.materialIndex??0)>f&&(e.materialIndex=f);return n},[e,l,u]);return(0,n.useEffect)(()=>()=>{f?.dispose()},[f]),f??e}let s=new a.Matrix4,u=new a.Vector3,f=new a.Quaternion,m=new a.Euler,h=new a.Vector3(1,1,1);e.s(["TrimClippedMesh",0,function({geometry:e,segment:i,parentToSegment:o,position:r=[0,0,0],rotation:p=[0,0,0],material:c,name:d,castShadow:M,receiveShadow:g}){let w=l(e,i,(0,n.useMemo)(()=>(m.set(p[0],p[1],p[2]),f.setFromEuler(m),u.set(r[0],r[1],r[2]),s.compose(u,f,h),new a.Matrix4().multiplyMatrices(o,s)),[o,r[0],r[1],r[2],p[0],p[1],p[2]]));return(0,t.jsx)("mesh",{castShadow:M,geometry:w??e,material:c,name:d,position:r,receiveShadow:g,rotation:p})},"useSegmentTrimClippedGeometry",0,l])},103127,e=>{"use strict";var t=e.i(843476);e.i(958123);var i=e.i(279278),o=e.i(312580),r=e.i(34731);e.i(592888);var n=e.i(961081),a=e.i(853273),l=e.i(810741),s=e.i(271645),u=e.i(190072),f=e.i(865181),m=e.i(707772),h=e.i(614419);let p=new u.MeshStandardMaterial({color:0xffffff,roughness:.7,metalness:.2});e.s(["default",0,({node:e})=>{let c=(0,s.useRef)(null);(0,o.useRegistry)(e.id,"cupola",c);let d=(0,a.useNodeEvents)(e,"cupola"),M=(0,l.useViewer)(e=>e.shading),g=(0,l.useViewer)(e=>e.textures),w=(0,l.useViewer)(e=>e.colorPreset),y=(0,l.useViewer)(e=>e.sceneTheme),b=(0,i.useLiveNodeOverrides)(t=>t.get(e.id)),v=b?{...e,...b}:e,x=(0,r.useScene)(e=>v.roofSegmentId?e.nodes[v.roofSegmentId]:void 0),S=(0,s.useMemo)(()=>(0,h.buildCupolaGeometry)(v),[v.width,v.depth,v.height,v.roofStyle,v.finial]);(0,s.useEffect)(()=>()=>S.dispose(),[S]);let R=(0,s.useMemo)(()=>{if(!x)return new u.Quaternion;let e=(0,f.getAnalyticalNormal)(v.position[0]??0,v.position[2]??0,x);return(0,f.surfaceQuatFromNormal)(e,new u.Quaternion)},[x,v.position[0],v.position[2]]),A=(0,s.useMemo)(()=>g&&(v.material||v.materialPreset)?v.material?(0,n.createMaterial)(v.material,M):(0,n.createMaterialFromPresetRef)(v.materialPreset,M)??p:(0,n.createSurfaceRoleMaterial)("roof",w,u.FrontSide,y),[g,w,y,M,v.material,v.materialPreset]),P=(0,s.useMemo)(()=>new u.Vector3(0,1,0),[]),T=(0,s.useMemo)(()=>{let e=new u.Quaternion().setFromAxisAngle(P,v.rotation??0);return new u.Quaternion().copy(R).multiply(e)},[R,v.rotation,P]),k=(0,s.useMemo)(()=>new u.Matrix4().compose(new u.Vector3(v.position[0]??0,v.position[1]??0,v.position[2]??0),T,new u.Vector3(1,1,1)),[v.position[0],v.position[1],v.position[2],T]),L=(0,m.useSegmentTrimClippedGeometry)(S,x,k);if(!x)return null;let V=x.position??[0,0,0],I=x.rotation??0;return(0,t.jsx)("group",{position:V,"rotation-y":I,children:(0,t.jsx)("group",{position:[v.position[0]??0,v.position[1]??0,v.position[2]??0],quaternion:T,ref:c,visible:v.visible,children:(0,t.jsx)("mesh",{castShadow:!0,geometry:L??S,material:A,name:"cupola-surface",receiveShadow:!0,...d})})})}])}]);