2 lines
9.7 KiB
JavaScript
2 lines
9.7 KiB
JavaScript
define(["exports","./BoundingSphere-561b54d0","./ComponentDatatype-c140a87d","./when-b60132fc","./Check-7b2a090c","./Cartesian2-47311507","./GeometryAttribute-3a42bbdc","./GeometryAttributes-252e9929","./GeometryPipeline-e1b82a4e","./IndexDatatype-8a5eead4","./WebMercatorProjection-01b1b5e7"],(function(e,t,r,n,i,o,a,s,d,p,u){"use strict";function f(e,t,r){e=n.defaultValue(e,0),t=n.defaultValue(t,0),r=n.defaultValue(r,0),this.value=new Float32Array([e,t,r])}function c(e,t){var n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});for(var s=n.batchId.values,d=0;d<o;++d)s[d]=t}function m(e){var i,o,a=e.instances,s=e.projection,p=e.elementIndexUintSupported,u=e.scene3DOnly,f=e.vertexCacheOptimize,m=e.compressVertices,h=e.modelMatrix,l=a.length;for(i=0;i<l;++i)if(n.defined(a[i].geometry)){a[i].geometry.primitiveType;break}if(function(e,r,i){var o,a=!i,s=e.length;if(!a&&s>1){var p=e[0].modelMatrix;for(o=1;o<s;++o)if(!t.Matrix4.equals(p,e[o].modelMatrix)){a=!0;break}}if(a)for(o=0;o<s;++o)n.defined(e[o].geometry)&&d.GeometryPipeline.transformToWorldCoordinates(e[o]);else t.Matrix4.multiplyTransformation(r,e[0].modelMatrix,r)}(a,h,u),!u)for(i=0;i<l;++i)n.defined(a[i].geometry)&&d.GeometryPipeline.splitLongitude(a[i]);if(function(e){for(var t=e.length,r=0;r<t;++r){var i=e[r];n.defined(i.geometry)?c(i.geometry,r):n.defined(i.westHemisphereGeometry)&&n.defined(i.eastHemisphereGeometry)&&(c(i.westHemisphereGeometry,r),c(i.eastHemisphereGeometry,r))}}(a),f)for(i=0;i<l;++i){var g=a[i];n.defined(g.geometry)?(d.GeometryPipeline.reorderForPostVertexCache(g.geometry),d.GeometryPipeline.reorderForPreVertexCache(g.geometry)):n.defined(g.westHemisphereGeometry)&&n.defined(g.eastHemisphereGeometry)&&(d.GeometryPipeline.reorderForPostVertexCache(g.westHemisphereGeometry),d.GeometryPipeline.reorderForPreVertexCache(g.westHemisphereGeometry),d.GeometryPipeline.reorderForPostVertexCache(g.eastHemisphereGeometry),d.GeometryPipeline.reorderForPreVertexCache(g.eastHemisphereGeometry))}var y=d.GeometryPipeline.combineInstances(a);for(l=y.length,i=0;i<l;++i){var b,v=(o=y[i]).attributes;if(u)for(b in v)v.hasOwnProperty(b)&&v[b].componentDatatype===r.ComponentDatatype.DOUBLE&&d.GeometryPipeline.encodeAttribute(o,b,b+"3DHigh",b+"3DLow");else for(b in v)if(v.hasOwnProperty(b)&&v[b].componentDatatype===r.ComponentDatatype.DOUBLE){var G=b+"3D",x=b+"2D";d.GeometryPipeline.projectTo2D(o,b,G,x,s),n.defined(o.boundingSphere)&&"position"===b&&(o.boundingSphereCV=t.BoundingSphere.fromVertices(o.attributes.position2D.values)),d.GeometryPipeline.encodeAttribute(o,G,G+"High",G+"Low"),d.GeometryPipeline.encodeAttribute(o,x,x+"High",x+"Low")}m&&d.GeometryPipeline.compressVertices(o)}if(!p){var S=[];for(l=y.length,i=0;i<l;++i)o=y[i],S=S.concat(d.GeometryPipeline.fitToUnsignedShortIndices(o));y=S}return y}function h(e,t,r,i){var o,a,s,d=i.length-1;if(d>=0){var p=i[d];o=p.offset+p.count,a=r[s=p.index].indices.length}else o=0,a=r[s=0].indices.length;for(var u=e.length,f=0;f<u;++f){var c=e[f][t];if(n.defined(c)){var m=c.indices.length;o+m>a&&(o=0,a=r[++s].indices.length),i.push({index:s,offset:o,count:m}),o+=m}}}Object.defineProperties(f.prototype,{componentDatatype:{get:function(){return r.ComponentDatatype.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}}),f.fromCartesian3=function(e){return new f(e.x,e.y,e.z)},f.toValue=function(e,t){return n.defined(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var l={};function g(e,t){var r=e.attributes;for(var i in r)if(r.hasOwnProperty(i)){var o=r[i];n.defined(o)&&n.defined(o.values)&&t.push(o.values.buffer)}n.defined(e.indices)&&t.push(e.indices.buffer)}function y(e,r){var i=e.length,o=new Float64Array(1+19*i),a=0;o[a++]=i;for(var s=0;s<i;s++){var d=e[s];if(t.Matrix4.pack(d.modelMatrix,o,a),a+=t.Matrix4.packedLength,n.defined(d.attributes)&&n.defined(d.attributes.offset)){var p=d.attributes.offset.value;o[a]=p[0],o[a+1]=p[1],o[a+2]=p[2]}a+=3}return r.push(o.buffer),o}function b(e){var r=e.length,i=1+(t.BoundingSphere.packedLength+1)*r,o=new Float32Array(i),a=0;o[a++]=r;for(var s=0;s<r;++s){var d=e[s];n.defined(d)?(o[a++]=1,t.BoundingSphere.pack(e[s],o,a)):o[a++]=0,a+=t.BoundingSphere.packedLength}return o}function v(e){for(var r=new Array(e[0]),n=0,i=1;i<e.length;)1===e[i++]&&(r[n]=t.BoundingSphere.unpack(e,i)),++n,i+=t.BoundingSphere.packedLength;return r}l.combineGeometry=function(e){var r,i,o,a,s=e.instances,p=s.length,u=!1;p>0&&((r=m(e)).length>0&&(i=d.GeometryPipeline.createAttributeLocations(r[0]),e.createPickOffsets&&(o=function(e,t){var r=[];return h(e,"geometry",t,r),h(e,"westHemisphereGeometry",t,r),h(e,"eastHemisphereGeometry",t,r),r}(s,r))),n.defined(s[0].attributes)&&n.defined(s[0].attributes.offset)&&(a=new Array(p),u=!0));for(var f=new Array(p),c=new Array(p),l=0;l<p;++l){var g=s[l],y=g.geometry;n.defined(y)&&(f[l]=y.boundingSphere,c[l]=y.boundingSphereCV,u&&(a[l]=g.geometry.offsetAttribute));var b=g.eastHemisphereGeometry,v=g.westHemisphereGeometry;n.defined(b)&&n.defined(v)&&(n.defined(b.boundingSphere)&&n.defined(v.boundingSphere)&&(f[l]=t.BoundingSphere.union(b.boundingSphere,v.boundingSphere)),n.defined(b.boundingSphereCV)&&n.defined(v.boundingSphereCV)&&(c[l]=t.BoundingSphere.union(b.boundingSphereCV,v.boundingSphereCV)))}return{geometries:r,modelMatrix:e.modelMatrix,attributeLocations:i,pickOffsets:o,offsetInstanceExtend:a,boundingSpheres:f,boundingSpheresCV:c}},l.packCreateGeometryResults=function(e,r){var i=new Float64Array(function(e){for(var r=1,i=e.length,o=0;o<i;o++){var a=e[o];if(++r,n.defined(a)){var s=a.attributes;for(var d in r+=7+2*t.BoundingSphere.packedLength+(n.defined(a.indices)?a.indices.length:0),s)s.hasOwnProperty(d)&&n.defined(s[d])&&(r+=5+s[d].values.length)}}return r}(e)),o=[],a={},s=e.length,d=0;i[d++]=s;for(var p=0;p<s;p++){var u=e[p],f=n.defined(u);if(i[d++]=f?1:0,f){i[d++]=u.primitiveType,i[d++]=u.geometryType,i[d++]=n.defaultValue(u.offsetAttribute,-1);var c=n.defined(u.boundingSphere)?1:0;i[d++]=c,c&&t.BoundingSphere.pack(u.boundingSphere,i,d),d+=t.BoundingSphere.packedLength;var m=n.defined(u.boundingSphereCV)?1:0;i[d++]=m,m&&t.BoundingSphere.pack(u.boundingSphereCV,i,d),d+=t.BoundingSphere.packedLength;var h=u.attributes,l=[];for(var g in h)h.hasOwnProperty(g)&&n.defined(h[g])&&(l.push(g),n.defined(a[g])||(a[g]=o.length,o.push(g)));i[d++]=l.length;for(var y=0;y<l.length;y++){var b=l[y],v=h[b];i[d++]=a[b],i[d++]=v.componentDatatype,i[d++]=v.componentsPerAttribute,i[d++]=v.normalize?1:0,i[d++]=v.values.length,i.set(v.values,d),d+=v.values.length}var G=n.defined(u.indices)?u.indices.length:0;i[d++]=G,G>0&&(i.set(u.indices,d),d+=G)}}return r.push(i.buffer),{stringTable:o,packedData:i}},l.unpackCreateGeometryResults=function(e){for(var n,i=e.stringTable,o=e.packedData,d=new Array(o[0]),u=0,f=1;f<o.length;){if(1===o[f++]){var c,m,h,l,g,y=o[f++],b=o[f++],v=o[f++];-1===v&&(v=void 0),1===o[f++]&&(c=t.BoundingSphere.unpack(o,f)),f+=t.BoundingSphere.packedLength,1===o[f++]&&(m=t.BoundingSphere.unpack(o,f)),f+=t.BoundingSphere.packedLength;var G,x=new s.GeometryAttributes,S=o[f++];for(n=0;n<S;n++){var P=i[o[f++]],k=o[f++];g=o[f++];var C=0!==o[f++];h=o[f++],l=r.ComponentDatatype.createTypedArray(k,h);for(var w=0;w<h;w++)l[w]=o[f++];x[P]=new a.GeometryAttribute({componentDatatype:k,componentsPerAttribute:g,normalize:C,values:l})}if((h=o[f++])>0){var A=l.length/g;for(G=p.IndexDatatype.createTypedArray(A,h),n=0;n<h;n++)G[n]=o[f++]}d[u++]=new a.Geometry({primitiveType:y,geometryType:b,boundingSphere:c,boundingSphereCV:m,indices:G,attributes:x,offsetAttribute:v})}else d[u++]=void 0}return d},l.packCombineGeometryParameters=function(e,r){for(var n=e.createGeometryResults,i=n.length,o=0;o<i;o++)r.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:y(e.instances,r),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof t.GeographicProjection,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}},l.unpackCombineGeometryParameters=function(e){for(var r=function(e){for(var r=e,i=new Array(r[0]),o=0,a=1;a<r.length;){var s,d=t.Matrix4.unpack(r,a);a+=t.Matrix4.packedLength,n.defined(r[a])&&(s={offset:new f(r[a],r[a+1],r[a+2])}),a+=3,i[o++]={modelMatrix:d,attributes:s}}return i}(e.packedInstances),i=e.createGeometryResults,a=i.length,s=0,d=0;d<a;d++)for(var p=l.unpackCreateGeometryResults(i[d]),c=p.length,m=0;m<c;m++){var h=p[m];r[s].geometry=h,++s}var g=o.Ellipsoid.clone(e.ellipsoid);return{instances:r,ellipsoid:g,projection:e.isGeographic?new t.GeographicProjection(g):new u.WebMercatorProjection(g),elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:t.Matrix4.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}},l.packCombineGeometryResults=function(e,t){n.defined(e.geometries)&&function(e,t){for(var r=e.length,n=0;n<r;++n)g(e[n],t)}(e.geometries,t);var r=b(e.boundingSpheres),i=b(e.boundingSpheresCV);return t.push(r.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:r,boundingSpheresCV:i}},l.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:v(e.boundingSpheres),boundingSpheresCV:v(e.boundingSpheresCV)}},e.PrimitivePipeline=l}));
|