/**
 * @license
 * Cesium - https://github.com/CesiumGS/cesium
 * Version 1.126
 *
 * 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 K}from"./chunk-BC3RBQRQ.js";import{a as G}from"./chunk-MNEOPOLK.js";import{a as S}from"./chunk-E25VRLIZ.js";import{c as B,h as R}from"./chunk-JBPQP6LH.js";import"./chunk-NLPIV6OK.js";import{a as t,b as _,d as L}from"./chunk-IIT3SHXK.js";import{a as F}from"./chunk-DLCTHPIV.js";import"./chunk-GMF7KJHC.js";import"./chunk-NYFH7JC3.js";import"./chunk-I2ICH2LD.js";import"./chunk-R6A52HT4.js";import"./chunk-D32DZSEC.js";var O=32767,ct=new _,rt=new t;function it(e,r,a,n,u){let o=e.length/3,s=e.subarray(0,o),f=e.subarray(o,2*o),i=e.subarray(2*o,3*o);G.zigZagDeltaDecode(s,f,i);let c=new Float64Array(e.length);for(let p=0;p<o;++p){let e=s[p],o=f[p],l=i[p],d=F.lerp(r.west,r.east,e/O),h=F.lerp(r.south,r.north,o/O),k=F.lerp(a,n,l/O),b=_.fromRadians(d,h,k,ct),m=u.cartographicToCartesian(b,rt);t.pack(m,c,3*p)}return c}var Y=it,X=new R,$=new L,j=new t,H={min:void 0,max:void 0};function at(e){e=new Float64Array(e);let r=0;H.min=e[r++],H.max=e[r++],R.unpack(e,r,X),r+=R.packedLength,L.unpack(e,r,$),r+=L.packedLength,t.unpack(e,r,j)}function ft(t){let e=t.length,r=new Uint32Array(e+1),a=0;for(let n=0;n<e;++n)r[n]=a,a+=t[n];return r[e]=a,r}var Z=new t,q=new t,J=new t,dt=new t,Q=new t;function ut(e,r){let a=new Uint16Array(e.positions),n=new Uint16Array(e.widths),u=new Uint32Array(e.counts),o=new Uint16Array(e.batchIds);at(e.packedBuffer);let s,f=X,i=$,c=j,p=H.min,l=H.max,d=Y(a,f,p,l,i),h=d.length/3,k=4*h-4,b=new Float32Array(3*k),m=new Float32Array(3*k),w=new Float32Array(3*k),y=new Float32Array(2*k),A=new Uint16Array(k),I=0,L=0,F=0,P=0,R=u.length;for(s=0;s<R;++s){let e=u[s],r=n[s],a=o[s];for(let n=0;n<e;++n){let u;if(0===n){let e=t.unpack(d,3*P,Z),r=t.unpack(d,3*(P+1),q);u=t.subtract(e,r,J),t.add(e,u,u)}else u=t.unpack(d,3*(P+n-1),J);let o,s=t.unpack(d,3*(P+n),dt);if(n===e-1){let r=t.unpack(d,3*(P+e-1),Z),a=t.unpack(d,3*(P+e-2),q);o=t.subtract(r,a,Q),t.add(r,o,o)}else o=t.unpack(d,3*(P+n+1),Q);t.subtract(u,c,u),t.subtract(s,c,s),t.subtract(o,c,o);let f=0===n?2:0,i=n===e-1?2:4;for(let e=f;e<i;++e){t.pack(s,b,I),t.pack(u,m,I),t.pack(o,w,I),I+=3;let n=e-2<0?-1:1;y[L++]=e%2*2-1,y[L++]=n*r,A[F++]=a}}P+=e}let g=S.createTypedArray(k,6*h-6),D=0,E=0;for(R=h-1,s=0;s<R;++s)g[E++]=D,g[E++]=D+2,g[E++]=D+1,g[E++]=D+1,g[E++]=D+2,g[E++]=D+3,D+=4;r.push(b.buffer,m.buffer,w.buffer),r.push(y.buffer,A.buffer,g.buffer);let N={indexDatatype:2===g.BYTES_PER_ELEMENT?S.UNSIGNED_SHORT:S.UNSIGNED_INT,currentPositions:b.buffer,previousPositions:m.buffer,nextPositions:w.buffer,expandAndWidth:y.buffer,batchIds:A.buffer,indices:g.buffer};if(e.keepDecodedPositions){let t=ft(u);r.push(d.buffer,t.buffer),N=B(N,{decodedPositions:d.buffer,decodedPositionOffsets:t.buffer})}return N}var It=K(ut);export{It as default};