2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
|
/* 2020-9-22 15:23:25 | 版权所有 军懋国兴 */
|
||
|
define(["./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69","./Cartesian2-43e3a3be","./Transforms-2d1ac5ec","./RuntimeError-f4c64df1","./WebGLConstants-95ceb4e9","./ComponentDatatype-607c9a0c","./GeometryAttribute-2303bbfb","./GeometryAttributes-90846c5f","./AttributeCompression-ea810287","./GeometryPipeline-1ea64cde","./EncodedCartesian3-29a09d7b","./IndexDatatype-79bb407c","./IntersectionTests-459f6f08","./Plane-46b5436f","./GeometryOffsetAttribute-9c676324","./VertexFormat-fe64931e","./GeometryInstance-6264cc0f","./arrayRemoveDuplicates-d96adeb6","./BoundingRectangle-943d30f6","./EllipsoidTangentPlane-b5927ee3","./ArcType-2b58731c","./EllipsoidRhumbLine-357c11e7","./PolygonPipeline-2ee85025","./PolygonGeometryLibrary-bcb33f68","./EllipsoidGeodesic-007422da"],function(W,b,Y,j,Q,e,t,q,K,r,o,V,a,F,i,n,Z,v,L,s,l,N,c,u,R,M,y){"use strict";var J=new j.Cartographic,X=new j.Cartographic;var S=new l.BoundingRectangle,$=new j.Cartesian3,ee=new j.Cartesian3,te=new j.Cartesian3,re=new j.Cartesian3,oe=new j.Cartesian3,ae=new j.Cartesian3,ie=new j.Cartesian3,ne=new j.Cartesian3,se=new j.Cartesian3,le=new j.Cartesian2,ue=new j.Cartesian2,pe=new j.Cartesian3,ce=new Q.Quaternion,ye=new Q.Matrix3,de=new Q.Matrix3;function k(e){var t,r,o,a=e.vertexFormat,i=e.geometry,n=e.shadowVolume,s=i.attributes.position.values,l=s.length,u=e.wall,p=e.top||u,c=e.bottom||u;if(a.st||a.normal||a.tangent||a.bitangent||n){var y=e.boundingRectangle,d=e.tangentPlane,g=e.ellipsoid,m=e.stRotation,h=e.perPositionHeight,f=le;f.x=y.x,f.y=y.y;var b,v=a.st?new Float32Array(l/3*2):void 0;a.normal&&(b=h&&p&&!u?i.attributes.normal.values:new Float32Array(l));var _,P=a.tangent?new Float32Array(l):void 0,C=a.bitangent?new Float32Array(l):void 0,T=n?new Float32Array(l):void 0,w=0,I=0,A=ee,x=te,E=re,G=!0,O=ye,H=de;H=0!==m?(_=Q.Quaternion.fromAxisAngle(d._plane.normal,m,ce),O=Q.Matrix3.fromQuaternion(_,O),_=Q.Quaternion.fromAxisAngle(d._plane.normal,-m,ce),Q.Matrix3.fromQuaternion(_,H)):(O=Q.Matrix3.clone(Q.Matrix3.IDENTITY,O),Q.Matrix3.clone(Q.Matrix3.IDENTITY,H));var D=0,V=0;p&&c&&(D=l/2,V=l/3,l/=2);for(var F=0;F<l;F+=3){var L,N,R,M,S,k,B,z,U=j.Cartesian3.fromArray(s,F,pe);a.st&&(L=Q.Matrix3.multiplyByVector(O,U,$),L=g.scaleToGeodeticSurface(L,L),N=d.projectPointOntoPlane(L,ue),j.Cartesian2.subtract(N,f,N),R=Y.CesiumMath.clamp(N.x/y.width,0,1),M=Y.CesiumMath.clamp(N.y/y.height,0,1),c&&(v[w+V]=R,v[w+1+V]=M),p&&(v[w]=R,v[w+1]=M),w+=2),(a.normal||a.tangent||a.bitangent||n)&&(S=I+1,k=I+2,u?(F+3<l&&(B=j.Cartesian3.fromArray(s,F+3,oe),G&&(z=j.Cartesian3.fromArray(s,F+l,ae),h&&function(e,t,r,o){var a=o.cartesianToCartographic(e,J).height,i=o.cartesianToCartographic(t,X);i.height=a,o.cartographicToCartesian(i,t);var n=o.cartesianToCartographic(r,X);n.height=a-100,o.cartographicToCartesian(n,r)}(U,B,z,g),j.Cartesian3.subtract(B,U,B),j.Cartesian3.subtract(z,U,z),A=j.Cartesian3.normalize(j.Cartesian3.cross(z,B,A),A),G=!1),j.Cartesian3.equalsEpsilon(B,U,Y.CesiumMath.EPSILON10)&&(G=!0)),(a.tangent||a.bitangent)&&(E=g.geodeticSurfaceNormal(U,E),a.tangent&&(x=j.Cartesian3.normalize(j.Cartesian3.cross(E,A,x),x)))):(A=g.geodeticSurfaceNormal(U,A),(a.tangent||a.bitangent)&&(h&&(ie=j.Cartesian3.fromArray(b,I,ie),ne=j.Cartesian3.cross(j.Cartesian3.UNIT_Z,ie,ne),ne=j.Cartesian3.normalize(Q.Matrix3.multiplyByVector(H,ne,ne),ne),a.bitangent&&(se=j.Cartesian3.normalize(j.Cartesian3.cross(ie,ne,se),se))),x=j.Cartesian3.cross(j.Cartesian3.UNIT_Z,A,x),x=j.Cartesian3.normalize(Q.Matrix3.multiplyByVector(H,x,x),x),a.bitangent&&(E=j.Cartesian3.normalize(j.Cartesian3.cross(A,x,E),E)))),a.normal&&(e.wall?(b[I+D]=A.x,b[S+D]=A.y,b[k+D]=A.z):c&&(b[I+D]=-A.x,b[S+D]=-A.y,b[k+D]=-A.z),(p&&!h||u)&&(b[I]=A.x,b[S]=A.y,b[k]=A.z)),n&&(u&&(A=g.geodeticSurfaceNormal(U,A)),T[I+D]=-A.x,T[S+D]=-A.y,T[k+D]=-A.z),a.tangent&&(e.wall?(P[I+D]=x.x,P[S+D]=x.y,P[k+D]=x.z):c&&(P[I+D]=-x.x,P[S+D]=-x.y,P[k+D]=-x.z),p&&(h?(P[I]=ne.x,P[S]=ne.y,P[k]=ne.z):(P[I]=x.x,P[S]=x.y,P[k]=x.z))),a.bitangent&&(c&&(C[I+D]=E.x,C[S+D]=E.y,C[k+D]=E.z),p&&(h?(C[I]=se.x,C[S]=se.y,C[k]=se.z):(C[I]=E.x,C[S]=E.y,C[k]=E.z))),I+=3)}a.st&&(i.attribu
|