2025-01-21 08:36:33 +08:00
|
|
|
define(["./when-b60132fc","./Cartesian2-47311507","./ArcType-29cf2197","./arrayFill-4513d7ad","./BoundingRectangle-1f901ba8","./buildModuleUrl-8958744c","./Cartographic-3309dd0d","./Check-7b2a090c","./ComponentDatatype-c140a87d","./EllipsoidGeodesic-0f19ac62","./EllipsoidTangentPlane-ce9a1fbb","./GeometryAttribute-06a41648","./GeometryInstance-6bd4503d","./GeometryOffsetAttribute-fbeb6f1a","./GeometryPipeline-44c6c124","./IndexDatatype-8a5eead4","./Math-119be1a3","./FeatureDetection-806b12f0","./PolygonGeometryLibrary-208ca427","./PolygonPipeline-d328cdf1","./VertexFormat-6446fca0","./Event-16a2dfbf","./RuntimeError-4a5c8994","./WebGLConstants-4ae0db90","./Cartesian4-3ca25aab","./IntersectionTests-a793ed08","./Plane-a3d8b3d2","./AttributeCompression-90851096","./EncodedCartesian3-f1396b05","./arrayRemoveDuplicates-d2f048c5","./EllipsoidRhumbLine-ed1a6bf4","./GeometryAttributes-252e9929","./earcut-2.2.1-20c8012f"],(function(e,t,o,r,a,i,n,s,l,u,d,p,c,g,m,y,h,f,b,_,v,C,x,P,T,w,A,E,I,G,V,F,H){"use strict";var N=new n.Cartographic,O=new n.Cartographic;function R(e,t,o,r){var a=r.cartesianToCartographic(e,N).height,i=r.cartesianToCartographic(t,O);i.height=a,r.cartographicToCartesian(i,t);var n=r.cartesianToCartographic(o,O);n.height=a-100,r.cartographicToCartesian(n,o)}var D=new a.BoundingRectangle,L=new n.Cartesian3,M=new n.Cartesian3,B=new n.Cartesian3,S=new n.Cartesian3,k=new n.Cartesian3,z=new n.Cartesian3,W=new n.Cartesian3,Y=new n.Cartesian3,U=new n.Cartesian3,j=new t.Cartesian2,Q=new t.Cartesian2,q=new n.Cartesian3,K=new p.Quaternion,Z=new f.Matrix3,J=new f.Matrix3;function X(o){var a=o.vertexFormat,i=o.geometry,s=o.shadowVolume,u=i.attributes.position.values,d=u.length,c=o.wall,m=o.top,y=o.bottom;if(a.st||a.normal||a.tangent||a.bitangent||s){var b=o.boundingRectangle,_=o.tangentPlane,v=o.ellipsoid,C=o.stRotation,x=o.perPositionHeight,P=j;P.x=b.x,P.y=b.y;var T,w=a.st?new Float32Array(d):void 0;a.normal&&(T=x&&m&&!c?i.attributes.normal.values:new Float32Array(d));var A=a.tangent?new Float32Array(d):void 0,E=a.bitangent?new Float32Array(d):void 0,I=s?new Float32Array(d):void 0,G=0,V=0,F=M,H=B,N=S,O=!0,D=Z,X=J;if(0!==C){var $=p.Quaternion.fromAxisAngle(_._plane.normal,C,K);D=f.Matrix3.fromQuaternion($,D),$=p.Quaternion.fromAxisAngle(_._plane.normal,-C,K),X=f.Matrix3.fromQuaternion($,X)}else D=f.Matrix3.clone(f.Matrix3.IDENTITY,D),X=f.Matrix3.clone(f.Matrix3.IDENTITY,X);var ee=0;(m&&y||c)&&(ee=d/2,d/=2);var te=1,oe=[];if(a.st&&c&&o.isComputeTexCoord){let e=[...o.outerPositions,o.outerPositions[0]];for(let t=1;t<e.length;t++){te+=n.Cartesian3.distance(e[t-1],e[t]),oe.push(te)}}for(var re=0;re<d;re+=3){var ae=n.Cartesian3.fromArray(u,re,q);if(a.st){var ie=f.Matrix3.multiplyByVector(D,ae,L);ie=v.scaleToGeodeticSurface(ie,ie);var ne=_.projectPointOntoPlane(ie,Q);t.Cartesian2.subtract(ne,P,ne);var se=h.CesiumMath.clamp(ne.x/b.width,0,1),le=h.CesiumMath.clamp(ne.y/b.height,0,1);if(c&&te>1){let e=Math.ceil(re/6)-1;se=oe[e]?oe[e]/te:0,w[G]=1-se,w[G+1]=1,w[G+2]=0,w[G+ee]=1-se,w[G+1+ee]=0,w[G+2+ee]=0}y&&(w[G+ee]=se,w[G+1+ee]=le,w[G+2+ee]=-1),m&&(w[G]=se,w[G+1]=le,w[G+2]=1),G+=3}if(a.normal||a.tangent||a.bitangent||s){var ue=V+1,de=V+2;if(c){if(re+3<d){var pe=n.Cartesian3.fromArray(u,re+3,k);if(O){var ce=n.Cartesian3.fromArray(u,re+d,z);x&&R(ae,pe,ce,v),n.Cartesian3.subtract(pe,ae,pe),n.Cartesian3.subtract(ce,ae,ce),F=n.Cartesian3.normalize(n.Cartesian3.cross(ce,pe,F),F),O=!1}n.Cartesian3.equalsEpsilon(pe,ae,h.CesiumMath.EPSILON10)&&(O=!0)}(a.tangent||a.bitangent)&&(N=v.geodeticSurfaceNormal(ae,N),a.tangent&&(H=n.Cartesian3.normalize(n.Cartesian3.cross(N,F,H),H)))}else F=v.geodeticSurfaceNormal(ae,F),(a.tangent||a.bitangent)&&(x&&(W=n.Cartesian3.fromArray(T,V,W),Y=n.Cartesian3.cross(n.Cartesian3.UNIT_Z,W,Y),Y=n.Cartesian3.normalize(f.Matrix3.multiplyByVector(X,Y,Y),Y),a.bitangent&&(U=n.Cartesian3.normalize(n.Cartesian3.cross(W,Y,U),U))),H=n.Cartesian3.cross(n.Cartesian3.UNIT_Z,F,H),H=n.Cartesian3.normalize(f.Matrix3.multiplyByVector(X,H,H),H),a.bitangent&&(N=n.Cartesian3.normalize(n.Cartesian3.cross(F,H,N),N)));a.normal&&(o.wall?(T[
|