2 lines
15 KiB
JavaScript
2 lines
15 KiB
JavaScript
|
|
define(["./when-54335d57","./Cartesian2-697a9954","./ArcType-2b58731c","./GeometryOffsetAttribute-6e5d8e16","./BoundingRectangle-f46bca91","./Transforms-251ff661","./Check-f3fec9b0","./ComponentDatatype-417761a2","./EllipsoidGeodesic-efd225af","./EllipsoidTangentPlane-ae33ec6a","./GeometryAttribute-7ca1c9e4","./GeometryInstance-1bb3fb4a","./GeometryPipeline-1dd54e44","./IndexDatatype-c134ea39","./Math-737a2579","./PolygonGeometryLibrary-e3208a07","./PolygonPipeline-1048742e","./VertexFormat-acf45ede","./RuntimeError-88a32665","./WebGLConstants-4739ce15","./AxisAlignedBoundingBox-dcfdb7a9","./IntersectionTests-3e34a0aa","./Plane-d4cb7bb3","./AttributeCompression-ab5c33b7","./EncodedCartesian3-0ae9fe5e","./arrayRemoveDuplicates-db90b85c","./EllipsoidRhumbLine-e5c51fa7","./GeometryAttributes-caa08d6c"],function(z,W,p,Y,e,U,t,j,y,A,Q,E,G,O,q,V,F,f,a,r,o,i,n,s,l,u,c,m){"use strict";var K=new W.Cartographic,Z=new W.Cartographic;var D=new e.BoundingRectangle,J=new W.Cartesian3,X=new W.Cartesian3,$=new W.Cartesian3,ee=new W.Cartesian3,te=new W.Cartesian3,ae=new W.Cartesian3,re=new W.Cartesian3,oe=new W.Cartesian3,ie=new W.Cartesian3,ne=new W.Cartesian2,se=new W.Cartesian2,le=new W.Cartesian3,ue=new U.Quaternion,ce=new U.Matrix3,pe=new U.Matrix3;function L(e){var t,a=e.vertexFormat,r=e.geometry,o=e.shadowVolume,i=r.attributes.position.values,n=i.length,s=e.wall,l=e.top||s,u=e.bottom||s;if(a.st||a.normal||a.tangent||a.bitangent||o){var c=e.boundingRectangle,p=e.tangentPlane,y=e.ellipsoid,m=e.stRotation,g=e.perPositionHeight,d=ne;d.x=c.x,d.y=c.y;var h,f=a.st?new Float32Array(n/3*2):void 0;a.normal&&(h=g&&l&&!s?r.attributes.normal.values:new Float32Array(n));var b,_=a.tangent?new Float32Array(n):void 0,v=a.bitangent?new Float32Array(n):void 0,P=o?new Float32Array(n):void 0,C=0,x=0,w=X,T=$,I=ee,A=!0,E=ce,G=pe;G=0!==m?(b=U.Quaternion.fromAxisAngle(p._plane.normal,m,ue),E=U.Matrix3.fromQuaternion(b,E),b=U.Quaternion.fromAxisAngle(p._plane.normal,-m,ue),U.Matrix3.fromQuaternion(b,G)):(E=U.Matrix3.clone(U.Matrix3.IDENTITY,E),U.Matrix3.clone(U.Matrix3.IDENTITY,G));var O=0,V=0;l&&u&&(O=n/2,V=n/3,n/=2);for(var F=0;F<n;F+=3){var D,L,N,H,R,M,S,B,k=W.Cartesian3.fromArray(i,F,le);a.st&&(D=U.Matrix3.multiplyByVector(E,k,J),D=y.scaleToGeodeticSurface(D,D),L=p.projectPointOntoPlane(D,se),W.Cartesian2.subtract(L,d,L),N=q.CesiumMath.clamp(L.x/c.width,0,1),H=q.CesiumMath.clamp(L.y/c.height,0,1),u&&(f[C+V]=N,f[C+1+V]=H),l&&(f[C]=N,f[C+1]=H),C+=2),(a.normal||a.tangent||a.bitangent||o)&&(R=x+1,M=x+2,s?(F+3<n&&(S=W.Cartesian3.fromArray(i,F+3,te),A&&(B=W.Cartesian3.fromArray(i,F+n,ae),g&&(t=k,D=S,L=B,N=void 0,N=(H=y).cartesianToCartographic(t,K).height,(t=H.cartesianToCartographic(D,Z)).height=N,H.cartographicToCartesian(t,D),(D=H.cartesianToCartographic(L,Z)).height=N-100,H.cartographicToCartesian(D,L)),W.Cartesian3.subtract(S,k,S),W.Cartesian3.subtract(B,k,B),w=W.Cartesian3.normalize(W.Cartesian3.cross(B,S,w),w),A=!1),W.Cartesian3.equalsEpsilon(S,k,q.CesiumMath.EPSILON10)&&(A=!0)),(a.tangent||a.bitangent)&&(I=y.geodeticSurfaceNormal(k,I),a.tangent&&(T=W.Cartesian3.normalize(W.Cartesian3.cross(I,w,T),T)))):(w=y.geodeticSurfaceNormal(k,w),(a.tangent||a.bitangent)&&(g&&(re=W.Cartesian3.fromArray(h,x,re),oe=W.Cartesian3.cross(W.Cartesian3.UNIT_Z,re,oe),oe=W.Cartesian3.normalize(U.Matrix3.multiplyByVector(G,oe,oe),oe),a.bitangent&&(ie=W.Cartesian3.normalize(W.Cartesian3.cross(re,oe,ie),ie))),T=W.Cartesian3.cross(W.Cartesian3.UNIT_Z,w,T),T=W.Cartesian3.normalize(U.Matrix3.multiplyByVector(G,T,T),T),a.bitangent&&(I=W.Cartesian3.normalize(W.Cartesian3.cross(w,T,I),I)))),a.normal&&(e.wall?(h[x+O]=w.x,h[R+O]=w.y,h[M+O]=w.z):u&&(h[x+O]=-w.x,h[R+O]=-w.y,h[M+O]=-w.z),(l&&!g||s)&&(h[x]=w.x,h[R]=w.y,h[M]=w.z)),o&&(s&&(w=y.geodeticSurfaceNormal(k,w)),P[x+O]=-w.x,P[R+O]=-w.y,P[M+O]=-w.z),a.tangent&&(e.wall?(_[x+O]=T.x,_[R+O]=T.y,_[M+O]=T.z):u&&(_[x+O]=-T.x,_[R+O]=-T.y,_[M+O]=-T.z),l&&(g?(_[x]=oe.x,_[R]=oe.y,_[M]=oe.z):(_[x]=T.x,_[R]=T.y,_[M]=T.z))),a.bitangent&&(u&&(v[x+O]=I.x,v[R+O]=I.y,v[M+O]=I.z),l&&(g?(v[x]=ie.x,v[R]=ie.y,v[M]=ie.z):(v[x]=I.x,v[R]=I.y,v[M]=I.z))),x
|