You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
231 lines
7.4 KiB
231 lines
7.4 KiB
9 months ago
|
define([
|
||
|
'./Transforms-7cd3197b',
|
||
|
'./BoxGeometry-a530ddad',
|
||
|
'./Matrix2-f2da41d4',
|
||
|
'./Color-d2414093',
|
||
|
'./CylinderGeometry-4a23db6d',
|
||
|
'./when-229515d6',
|
||
|
'./EllipsoidGeometry-6edeb2a4',
|
||
|
'./IndexDatatype-b10faa0b',
|
||
|
'./createTaskProcessorWorker',
|
||
|
'./RuntimeError-ffe03243',
|
||
|
'./ComponentDatatype-17b06483',
|
||
|
'./WebGLConstants-4e26b85a',
|
||
|
'./combine-8ce3f24b',
|
||
|
'./GeometryOffsetAttribute-ff1e192c',
|
||
|
'./GeometryAttribute-80036e07',
|
||
|
'./GeometryAttributes-b253752a',
|
||
|
'./VertexFormat-565d6a6c',
|
||
|
'./CylinderGeometryLibrary-7b000e1b',
|
||
|
], function (e, t, n, r, a, i, o, d, s, c, f, l, u, h, b, p, y, x) {
|
||
|
'use strict';
|
||
|
function g(e) {
|
||
|
(this.offset = e.offset),
|
||
|
(this.count = e.count),
|
||
|
(this.color = e.color),
|
||
|
(this.batchIds = e.batchIds);
|
||
|
}
|
||
|
var v = new n.Cartesian3(),
|
||
|
m = n.Matrix4.packedLength + n.Cartesian3.packedLength,
|
||
|
C = n.Matrix4.packedLength + 2,
|
||
|
I = n.Matrix4.packedLength + n.Cartesian3.packedLength,
|
||
|
k = n.Cartesian3.packedLength + 1,
|
||
|
M = { modelMatrix: new n.Matrix4(), boundingVolume: new e.BoundingSphere() };
|
||
|
function B(e, t) {
|
||
|
var r = t * m,
|
||
|
a = n.Cartesian3.unpack(e, r, v);
|
||
|
r += n.Cartesian3.packedLength;
|
||
|
var i = n.Matrix4.unpack(e, r, M.modelMatrix);
|
||
|
n.Matrix4.multiplyByScale(i, a, i);
|
||
|
var o = M.boundingVolume;
|
||
|
return n.Cartesian3.clone(n.Cartesian3.ZERO, o.center), (o.radius = Math.sqrt(3)), M;
|
||
|
}
|
||
|
function w(e, t) {
|
||
|
var r = t * C,
|
||
|
a = e[r++],
|
||
|
i = e[r++],
|
||
|
o = n.Cartesian3.fromElements(a, a, i, v),
|
||
|
d = n.Matrix4.unpack(e, r, M.modelMatrix);
|
||
|
n.Matrix4.multiplyByScale(d, o, d);
|
||
|
var s = M.boundingVolume;
|
||
|
return n.Cartesian3.clone(n.Cartesian3.ZERO, s.center), (s.radius = Math.sqrt(2)), M;
|
||
|
}
|
||
|
function A(e, t) {
|
||
|
var r = t * I,
|
||
|
a = n.Cartesian3.unpack(e, r, v);
|
||
|
r += n.Cartesian3.packedLength;
|
||
|
var i = n.Matrix4.unpack(e, r, M.modelMatrix);
|
||
|
n.Matrix4.multiplyByScale(i, a, i);
|
||
|
var o = M.boundingVolume;
|
||
|
return n.Cartesian3.clone(n.Cartesian3.ZERO, o.center), (o.radius = 1), M;
|
||
|
}
|
||
|
function O(e, t) {
|
||
|
var r = t * k,
|
||
|
a = e[r++],
|
||
|
i = n.Cartesian3.unpack(e, r, v),
|
||
|
o = n.Matrix4.fromTranslation(i, M.modelMatrix);
|
||
|
n.Matrix4.multiplyByUniformScale(o, a, o);
|
||
|
var d = M.boundingVolume;
|
||
|
return n.Cartesian3.clone(n.Cartesian3.ZERO, d.center), (d.radius = 1), M;
|
||
|
}
|
||
|
var L = new n.Cartesian3();
|
||
|
function E(t, a, o, d, s) {
|
||
|
if (i.defined(a)) {
|
||
|
for (
|
||
|
var c = o.length,
|
||
|
f = d.attributes.position.values,
|
||
|
l = d.indices,
|
||
|
u = t.positions,
|
||
|
h = t.vertexBatchIds,
|
||
|
b = t.indices,
|
||
|
p = t.batchIds,
|
||
|
y = t.batchTableColors,
|
||
|
x = t.batchedIndices,
|
||
|
v = t.indexOffsets,
|
||
|
m = t.indexCounts,
|
||
|
C = t.boundingVolumes,
|
||
|
I = t.modelMatrix,
|
||
|
k = t.center,
|
||
|
M = t.positionOffset,
|
||
|
B = t.batchIdIndex,
|
||
|
w = t.indexOffset,
|
||
|
A = t.batchedIndicesOffset,
|
||
|
O = 0;
|
||
|
O < c;
|
||
|
++O
|
||
|
) {
|
||
|
var E = s(a, O),
|
||
|
U = E.modelMatrix;
|
||
|
n.Matrix4.multiply(I, U, U);
|
||
|
for (var G = o[O], S = f.length, T = 0; T < S; T += 3) {
|
||
|
var V = n.Cartesian3.unpack(f, T, L);
|
||
|
n.Matrix4.multiplyByPoint(U, V, V),
|
||
|
n.Cartesian3.subtract(V, k, V),
|
||
|
n.Cartesian3.pack(V, u, 3 * M + T),
|
||
|
(h[B++] = G);
|
||
|
}
|
||
|
for (var F = l.length, R = 0; R < F; ++R) b[w + R] = l[R] + M;
|
||
|
var Z = O + A;
|
||
|
(x[Z] = new g({ offset: w, count: F, color: r.Color.fromRgba(y[G]), batchIds: [G] })),
|
||
|
(p[Z] = G),
|
||
|
(v[Z] = w),
|
||
|
(m[Z] = F),
|
||
|
(C[Z] = e.BoundingSphere.transform(E.boundingVolume, U)),
|
||
|
(M += S / 3),
|
||
|
(w += F);
|
||
|
}
|
||
|
(t.positionOffset = M),
|
||
|
(t.batchIdIndex = B),
|
||
|
(t.indexOffset = w),
|
||
|
(t.batchedIndicesOffset += c);
|
||
|
}
|
||
|
}
|
||
|
var U = new n.Cartesian3(),
|
||
|
G = new n.Matrix4();
|
||
|
function S(t, n, a) {
|
||
|
var i = a.length,
|
||
|
o =
|
||
|
2 +
|
||
|
i * e.BoundingSphere.packedLength +
|
||
|
1 +
|
||
|
(function (e) {
|
||
|
for (var t = e.length, n = 0, a = 0; a < t; ++a)
|
||
|
n += r.Color.packedLength + 3 + e[a].batchIds.length;
|
||
|
return n;
|
||
|
})(n),
|
||
|
d = new Float64Array(o),
|
||
|
s = 0;
|
||
|
(d[s++] = t), (d[s++] = i);
|
||
|
for (var c = 0; c < i; ++c)
|
||
|
e.BoundingSphere.pack(a[c], d, s), (s += e.BoundingSphere.packedLength);
|
||
|
var f = n.length;
|
||
|
d[s++] = f;
|
||
|
for (var l = 0; l < f; ++l) {
|
||
|
var u = n[l];
|
||
|
r.Color.pack(u.color, d, s),
|
||
|
(s += r.Color.packedLength),
|
||
|
(d[s++] = u.offset),
|
||
|
(d[s++] = u.count);
|
||
|
var h = u.batchIds,
|
||
|
b = h.length;
|
||
|
d[s++] = b;
|
||
|
for (var p = 0; p < b; ++p) d[s++] = h[p];
|
||
|
}
|
||
|
return d;
|
||
|
}
|
||
|
return s(function (e, r) {
|
||
|
var s = i.defined(e.boxes) ? new Float32Array(e.boxes) : void 0,
|
||
|
c = i.defined(e.boxBatchIds) ? new Uint16Array(e.boxBatchIds) : void 0,
|
||
|
f = i.defined(e.cylinders) ? new Float32Array(e.cylinders) : void 0,
|
||
|
l = i.defined(e.cylinderBatchIds) ? new Uint16Array(e.cylinderBatchIds) : void 0,
|
||
|
u = i.defined(e.ellipsoids) ? new Float32Array(e.ellipsoids) : void 0,
|
||
|
h = i.defined(e.ellipsoidBatchIds) ? new Uint16Array(e.ellipsoidBatchIds) : void 0,
|
||
|
b = i.defined(e.spheres) ? new Float32Array(e.spheres) : void 0,
|
||
|
p = i.defined(e.sphereBatchIds) ? new Uint16Array(e.sphereBatchIds) : void 0,
|
||
|
y = i.defined(s) ? c.length : 0,
|
||
|
x = i.defined(f) ? l.length : 0,
|
||
|
g = i.defined(u) ? h.length : 0,
|
||
|
v = i.defined(b) ? p.length : 0,
|
||
|
m = t.BoxGeometry.getUnitBox(),
|
||
|
C = a.CylinderGeometry.getUnitCylinder(),
|
||
|
I = o.EllipsoidGeometry.getUnitEllipsoid(),
|
||
|
k = m.attributes.position.values,
|
||
|
M = C.attributes.position.values,
|
||
|
L = I.attributes.position.values,
|
||
|
T = k.length * y;
|
||
|
(T += M.length * x), (T += L.length * (g + v));
|
||
|
var V = m.indices,
|
||
|
F = C.indices,
|
||
|
R = I.indices,
|
||
|
Z = V.length * y;
|
||
|
(Z += F.length * x), (Z += R.length * (g + v));
|
||
|
var D = new Float32Array(T),
|
||
|
P = new Uint16Array(T / 3),
|
||
|
q = d.IndexDatatype.createTypedArray(T / 3, Z),
|
||
|
W = y + x + g + v,
|
||
|
_ = new Uint16Array(W),
|
||
|
N = new Array(W),
|
||
|
Y = new Uint32Array(W),
|
||
|
j = new Uint32Array(W),
|
||
|
z = new Array(W);
|
||
|
!(function (e) {
|
||
|
var t = new Float64Array(e),
|
||
|
r = 0;
|
||
|
n.Cartesian3.unpack(t, r, U), (r += n.Cartesian3.packedLength), n.Matrix4.unpack(t, r, G);
|
||
|
})(e.packedBuffer);
|
||
|
var H = {
|
||
|
batchTableColors: new Uint32Array(e.batchTableColors),
|
||
|
positions: D,
|
||
|
vertexBatchIds: P,
|
||
|
indices: q,
|
||
|
batchIds: _,
|
||
|
batchedIndices: N,
|
||
|
indexOffsets: Y,
|
||
|
indexCounts: j,
|
||
|
boundingVolumes: z,
|
||
|
positionOffset: 0,
|
||
|
batchIdIndex: 0,
|
||
|
indexOffset: 0,
|
||
|
batchedIndicesOffset: 0,
|
||
|
modelMatrix: G,
|
||
|
center: U,
|
||
|
};
|
||
|
E(H, s, c, m, B), E(H, f, l, C, w), E(H, u, h, I, A), E(H, b, p, I, O);
|
||
|
var J = S(q.BYTES_PER_ELEMENT, N, z);
|
||
|
return (
|
||
|
r.push(D.buffer, P.buffer, q.buffer),
|
||
|
r.push(_.buffer, Y.buffer, j.buffer),
|
||
|
r.push(J.buffer),
|
||
|
{
|
||
|
positions: D.buffer,
|
||
|
vertexBatchIds: P.buffer,
|
||
|
indices: q.buffer,
|
||
|
indexOffsets: Y.buffer,
|
||
|
indexCounts: j.buffer,
|
||
|
batchIds: _.buffer,
|
||
|
packedBuffer: J.buffer,
|
||
|
}
|
||
|
);
|
||
|
});
|
||
|
});
|