learning_cesium/XbsjCesium/Workers/createCorridorGeometry.js

2 lines
16 KiB
JavaScript
Raw Normal View History

2024-03-19 18:06:25 +08:00
define(["./GeometryOffsetAttribute-6e5d8e16","./arrayRemoveDuplicates-db90b85c","./Transforms-251ff661","./Cartesian2-697a9954","./Check-f3fec9b0","./ComponentDatatype-417761a2","./PolylineVolumeGeometryLibrary-82babed3","./CorridorGeometryLibrary-b7e7396f","./when-54335d57","./GeometryAttribute-7ca1c9e4","./GeometryAttributes-caa08d6c","./IndexDatatype-c134ea39","./Math-737a2579","./PolygonPipeline-1048742e","./VertexFormat-acf45ede","./RuntimeError-88a32665","./WebGLConstants-4739ce15","./EllipsoidTangentPlane-ae33ec6a","./AxisAlignedBoundingBox-dcfdb7a9","./IntersectionTests-3e34a0aa","./Plane-d4cb7bb3","./PolylinePipeline-d9c22c71","./EllipsoidGeodesic-efd225af","./EllipsoidRhumbLine-e5c51fa7"],function(E,y,m,rt,t,at,f,it,ot,nt,st,lt,dt,V,F,e,r,a,i,o,n,s,l,d){"use strict";var ut=new rt.Cartesian3,mt=new rt.Cartesian3,yt=new rt.Cartesian3,ft=new rt.Cartesian3,L=new rt.Cartesian3,ct=new rt.Cartesian3,pt=new rt.Cartesian3,ht=new rt.Cartesian3;function c(t,e){for(var r=0;r<t.length;r++)t[r]=e.scaleToGeodeticSurface(t[r],t[r]);return t}function gt(t,e,r,a,i,o){var n=t.normals,s=t.tangents,l=t.bitangents,t=rt.Cartesian3.normalize(rt.Cartesian3.cross(r,e,pt),pt);o.normal&&it.CorridorGeometryLibrary.addAttribute(n,e,a,i),o.tangent&&it.CorridorGeometryLibrary.addAttribute(s,t,a,i),o.bitangent&&it.CorridorGeometryLibrary.addAttribute(l,r,a,i)}function x(t,e,r){var a,i=t.positions,o=t.corners,n=t.endPositions,s=t.lefts,l=t.normals,d=new st.GeometryAttributes,u=0,m=0,y=0;for(D=0;D<i.length;D+=2)u+=a=i[D].length-3,y+=2*a,m+=i[D+1].length-3;for(u+=3,m+=3,D=0;D<o.length;D++){var f=o[D],c=o[D].leftPositions;ot.defined(c)?u+=a=c.length:m+=a=o[D].rightPositions.length,y+=a}var p,h=ot.defined(n);h&&(u+=p=n[0].length-3,m+=p,y+=6*(p/=3));var g,C,b,A,t=u+m,v=new Float64Array(t),_={normals:e.normal?new Float32Array(t):void 0,tangents:e.tangent?new Float32Array(t):void 0,bitangents:e.bitangent?new Float32Array(t):void 0},w=0,T=t-1,G=ut,E=mt,V=p/2,F=lt.IndexDatatype.createTypedArray(t/3,y),L=0;if(h)for(var x=yt,P=ft,N=n[0],G=rt.Cartesian3.fromArray(l,0,G),E=rt.Cartesian3.fromArray(s,0,E),D=0;D<V;D++)x=rt.Cartesian3.fromArray(N,3*(V-1-D),x),P=rt.Cartesian3.fromArray(N,3*(V+D),P),it.CorridorGeometryLibrary.addAttribute(v,P,w),it.CorridorGeometryLibrary.addAttribute(v,x,void 0,T),gt(_,G,E,w,T,e),A=(C=w/3)+1,b=(g=(T-2)/3)-1,F[L++]=g,F[L++]=C,F[L++]=b,F[L++]=b,F[L++]=C,F[L++]=A,w+=3,T-=3;var M,O,I=0,S=0,R=i[I++],k=i[I++];for(v.set(R,w),v.set(k,T-k.length+1),E=rt.Cartesian3.fromArray(s,S,E),a=k.length-3,D=0;D<a;D+=3)M=r.geodeticSurfaceNormal(rt.Cartesian3.fromArray(R,D,pt),pt),O=r.geodeticSurfaceNormal(rt.Cartesian3.fromArray(k,a-D,ht),ht),gt(_,G=rt.Cartesian3.normalize(rt.Cartesian3.add(M,O,G),G),E,w,T,e),A=(C=w/3)+1,b=(g=(T-2)/3)-1,F[L++]=g,F[L++]=C,F[L++]=b,F[L++]=b,F[L++]=C,F[L++]=A,w+=3,T-=3;for(M=r.geodeticSurfaceNormal(rt.Cartesian3.fromArray(R,a,pt),pt),O=r.geodeticSurfaceNormal(rt.Cartesian3.fromArray(k,a,ht),ht),G=rt.Cartesian3.normalize(rt.Cartesian3.add(M,O,G),G),S+=3,D=0;D<o.length;D++){var H,z,B,U=(f=o[D]).leftPositions,Y=f.rightPositions,W=ct,q=yt,J=ft;if(G=rt.Cartesian3.fromArray(l,S,G),ot.defined(U)){for(gt(_,G,E,void 0,T,e),T-=3,z=A,B=b,H=0;H<U.length/3;H++)W=rt.Cartesian3.fromArray(U,3*H,W),F[L++]=z,F[L++]=B-H-1,F[L++]=B-H,it.CorridorGeometryLibrary.addAttribute(v,W,void 0,T),q=rt.Cartesian3.fromArray(v,3*(B-H-1),q),J=rt.Cartesian3.fromArray(v,3*z,J),gt(_,G,E=rt.Cartesian3.normalize(rt.Cartesian3.subtract(q,J,E),E),void 0,T,e),T-=3;W=rt.Cartesian3.fromArray(v,3*z,W),q=rt.Cartesian3.subtract(rt.Cartesian3.fromArray(v,3*B,q),W,q),J=rt.Cartesian3.subtract(rt.Cartesian3.fromArray(v,3*(B-H),J),W,J),gt(_,G,E=rt.Cartesian3.normalize(rt.Cartesian3.add(q,J,E),E),w,void 0,e),w+=3}else{for(gt(_,G,E,w,void 0,e),w+=3,z=b,B=A,H=0;H<Y.length/3;H++)W=rt.Cartesian3.fromArray(Y,3*H,W),F[L++]=z,F[L++]=B+H,F[L++]=B+H+1,it.CorridorGeometryLibrary.addAttribute(v,W,w),q=rt.Cartesian3.fromArray(v,3*z,q),J=rt.Cartesian3.fromArray(v,3*(B+H),J),gt(_,G,E=rt.Cartesian3.normalize(rt.Cartesian3.subtract(q,J,E),E),w,void 0,e),w+=3;W=rt.Cartesian3.fromArray(v,