/**
 * @license
 * Cesium - https://github.com/CesiumGS/cesium
 * Version 1.122
 *
 * Copyright 2011-2022 Cesium Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Columbus View (Pat. Pend.)
 *
 * Portions licensed separately.
 * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
 */
import{a as P}from"./chunk-XHJOIQBC.js";import{a as z}from"./chunk-WVZHIF5R.js";import"./chunk-U3H5JVOB.js";import{a as H}from"./chunk-L5F4AY2H.js";import{a as Y}from"./chunk-JQWRUZSV.js";import{a as j}from"./chunk-YFZZAR5H.js";import"./chunk-IFAARW2T.js";import"./chunk-6YAFAZVV.js";import{a as W}from"./chunk-UGB43LJM.js";import"./chunk-WFZLZ2P5.js";import"./chunk-N72XKOXM.js";import{d as E}from"./chunk-EWTFJ46X.js";import{b as d}from"./chunk-5IUXF6I3.js";import"./chunk-27UWHT4D.js";import{a as o}from"./chunk-RFPX772U.js";import"./chunk-RAYRECQS.js";import"./chunk-2NAI7YQ3.js";import"./chunk-QE3ZUOZY.js";import"./chunk-6KLVDWWE.js";import"./chunk-6P5KAIBX.js";import{e as l}from"./chunk-4FSVUTPL.js";function X(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var J=X,S=new o,$=d.packedLength+o.packedLength,ee=d.packedLength+2,ne=d.packedLength+o.packedLength,te=o.packedLength+1,u={modelMatrix:new d,boundingVolume:new E};function oe(e,t){let n=t*$,r=o.unpack(e,n,S);n+=o.packedLength;let i=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(i,r,i);let s=u.boundingVolume;return o.clone(o.ZERO,s.center),s.radius=Math.sqrt(3),u}function ce(e,t){let n=t*ee,r=e[n++],i=e[n++],s=o.fromElements(r,r,i,S),a=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(a,s,a);let l=u.boundingVolume;return o.clone(o.ZERO,l.center),l.radius=Math.sqrt(2),u}function se(e,t){let n=t*ne,r=o.unpack(e,n,S);n+=o.packedLength;let i=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(i,r,i);let s=u.boundingVolume;return o.clone(o.ZERO,s.center),s.radius=1,u}function ie(e,t){let n=t*te,r=e[n++],i=o.unpack(e,n,S),s=d.fromTranslation(i,u.modelMatrix);d.multiplyByUniformScale(s,r,s);let a=u.boundingVolume;return o.clone(o.ZERO,a.center),a.radius=1,u}var de=new o;function R(e,t,n,r,i){if(!l(t))return;let s=n.length,a=r.attributes.position.values,c=r.indices,u=e.positions,f=e.vertexBatchIds,h=e.indices,p=e.batchIds,m=e.batchTableColors,b=e.batchedIndices,k=e.indexOffsets,g=e.indexCounts,I=e.boundingVolumes,y=e.modelMatrix,x=e.center,A=e.positionOffset,w=e.batchIdIndex,B=e.indexOffset,j=e.batchedIndicesOffset;for(let e=0;e<s;++e){let r=i(t,e),s=r.modelMatrix;d.multiply(y,s,s);let l=n[e],O=a.length;for(let e=0;e<O;e+=3){let t=o.unpack(a,e,de);d.multiplyByPoint(s,t,t),o.subtract(t,x,t),o.pack(t,u,3*A+e),f[w++]=l}let U=c.length;for(let e=0;e<U;++e)h[B+e]=c[e]+A;let v=e+j;b[v]=new J({offset:B,count:U,color:P.fromRgba(m[l]),batchIds:[l]}),p[v]=l,k[v]=B,g[v]=U,I[v]=E.transform(r.boundingVolume,s),A+=O/3,B+=U}e.positionOffset=A,e.batchIdIndex=w,e.indexOffset=B,e.batchedIndicesOffset+=s}var K=new o,Q=new d;function re(e){let t=new Float64Array(e),n=0;o.unpack(t,n,K),n+=o.packedLength,d.unpack(t,n,Q)}function le(e){let t=e.length,n=0;for(let o=0;o<t;++o)n+=P.packedLength+3+e[o].batchIds.length;return n}function ae(e,t,n){let o=n.length,r=2+o*E.packedLength+1+le(t),i=new Float64Array(r),s=0;i[s++]=e,i[s++]=o;for(let e=0;e<o;++e)E.pack(n[e],i,s),s+=E.packedLength;let a=t.length;i[s++]=a;for(let e=0;e<a;++e){let n=t[e];P.pack(n.color,i,s),s+=P.packedLength,i[s++]=n.offset,i[s++]=n.count;let o=n.batchIds,r=o.length;i[s++]=r;for(let e=0;e<r;++e)i[s++]=o[e]}return i}function fe(e,t){let n=l(e.boxes)?new Float32Array(e.boxes):void 0,o=l(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,r=l(e.cylinders)?new Float32Array(e.cylinders):void 0,i=l(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,s=l(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,a=l(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,c=l(e.spheres)?new Float32Array(e.spheres):void 0,d=l(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,u=l(n)?o.length:0,f=l(r)?i.length:0,h=l(s)?a.length:0,p=l(c)?d.length:0,m=j.getUnitBox(),b=z.getUnitCylinder(),k=H.getUnitEllipsoid(),g=m.attributes.position.values,I=b.attributes.position.values,y=k.attributes.position.values,x=g.length*u;x+=I.length*f,x+=y.length*(h+p);let A=m.indices,w=b.indices,B=k.indices,O=A.length*u;O+=w.length*f,O+=B.length*(h+p);let E=new Float32Array(x),U=new Uint16Array(x/3),v=W.createTypedArray(x/3,O),L=u+f+h+p,F=new Uint16Array(L),V=new Array(L),M=new Uint32Array(L),S=new Uint32Array(L),Z=new Array(L);re(e.packedBuffer);let P={batchTableColors:new Uint32Array(e.batchTableColors),positions:E,vertexBatchIds:U,indices:v,batchIds:F,batchedIndices:V,indexOffsets:M,indexCounts:S,boundingVolumes:Z,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:Q,center:K};R(P,n,o,m,oe),R(P,r,i,b,ce),R(P,s,a,k,se),R(P,c,d,k,ie);let T=ae(v.BYTES_PER_ELEMENT,V,Z);return t.push(E.buffer,U.buffer,v.buffer),t.push(F.buffer,M.buffer,S.buffer),t.push(T.buffer),{positions:E.buffer,vertexBatchIds:U.buffer,indices:v.buffer,indexOffsets:M.buffer,indexCounts:S.buffer,batchIds:F.buffer,packedBuffer:T.buffer}}var Oe=Y(fe);export{Oe as default};