245 lines
10 KiB
JavaScript
245 lines
10 KiB
JavaScript
(function () {
|
|
"use strict";
|
|
function n(t) {
|
|
this._bottomWidth = t.bottomWidth,
|
|
this._bottomHeight = t.bottomHeight,
|
|
this._topWidth = t.topWidth,
|
|
this._topHeight = t.topHeight,
|
|
this._length = t.length,
|
|
this._zReverse = t.zReverse,
|
|
this._slices = t.slices ? t.slices : 8
|
|
}
|
|
Object.defineProperty(Cesium, "__esModule", {
|
|
value: !0
|
|
}),
|
|
Cesium.FourPrismGeometry = void 0;
|
|
var s = new Cesium.Cartesian3,
|
|
u = new Cesium.Ray;
|
|
n._createGeometry = function (t) {
|
|
for (var e = t._bottomWidth,
|
|
i = t._bottomHeight,
|
|
n = t._topWidth,
|
|
r = t._topHeight,
|
|
a = t._zReverse,
|
|
s = (a ? -1 : 1) * t._length,
|
|
u = new Float32Array(24),
|
|
l = [],
|
|
h = [],
|
|
d = [0, s],
|
|
m = [e, n],
|
|
f = [i, r],
|
|
p = 0,
|
|
c = 0;
|
|
c < 2; c++)
|
|
u[3 * p] = -m[c] / 2,
|
|
u[3 * p + 1] = -f[c] / 2,
|
|
u[3 * p + 2] = d[c],
|
|
h[2 * p] = c,
|
|
h[2 * p + 1] = 0,
|
|
p++ , u[3 * p] = -m[c] / 2,
|
|
u[3 * p + 1] = f[c] / 2,
|
|
u[3 * p + 2] = d[c],
|
|
h[2 * p] = c,
|
|
h[2 * p + 1] = 0,
|
|
p++ ,
|
|
u[3 * p] = m[c] / 2,
|
|
u[3 * p + 1] = f[c] / 2,
|
|
u[3 * p + 2] = d[c],
|
|
h[2 * p] = c,
|
|
h[2 * p + 1] = 0,
|
|
p++ ,
|
|
u[3 * p] = m[c] / 2,
|
|
u[3 * p + 1] = -f[c] / 2,
|
|
u[3 * p + 2] = d[c],
|
|
h[2 * p] = c,
|
|
h[2 * p + 1] = 0,
|
|
p++;
|
|
l.push(0, 1, 3),
|
|
l.push(1, 2, 3),
|
|
l.push(0, 4, 5),
|
|
l.push(0, 5, 1),
|
|
l.push(1, 2, 6),
|
|
l.push(1, 6, 5),
|
|
l.push(2, 3, 7),
|
|
l.push(7, 6, 2),
|
|
l.push(0, 3, 7),
|
|
l.push(7, 4, 0),
|
|
l.push(4, 5, 6),
|
|
l.push(6, 7, 4),
|
|
l = new Int16Array(l),
|
|
h = new Float32Array(h);
|
|
var _ = {
|
|
position: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: u
|
|
}),
|
|
st: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
componentsPerAttribute: 2, values: h
|
|
})
|
|
},
|
|
g = Cesium.BoundingSphere.fromVertices(u),
|
|
v = new Cesium.Geometry({
|
|
attributes: _,
|
|
indices: l,
|
|
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
boundingSphere: g
|
|
});
|
|
return v = Cesium.GeometryPipeline.computeNormal(v),
|
|
u = [],
|
|
l = [],
|
|
v
|
|
},
|
|
n.createGeometry = function (t, e) {
|
|
if (!e)
|
|
return n._createGeometry(cylinderGeometry);
|
|
Cesium.Matrix4.multiplyByPoint(e, Cesium.Cartesian3.ZERO, s),
|
|
s.clone(u.origin);
|
|
var i = t._slices,
|
|
r = (t._bottomWidth, t._bottomHeight, t._topWidth),
|
|
l = t._topHeight,
|
|
h = t._zReverse,
|
|
d = (h ? -1 : 1) * t._length,
|
|
m = [],
|
|
f = [],
|
|
p = [],
|
|
c = r / 2,
|
|
_ = l / 2,
|
|
g = i,
|
|
v = i,
|
|
y = 0;
|
|
m.push(0, 0, 0),
|
|
p.push(1, 1),
|
|
y++;
|
|
for (var C = new Cesium.Cartesian3, w = [], x = -v; x < v; x++) {
|
|
for (var A = [], b = -g; b < g; b++) {
|
|
var M = _ * x / v, P = c * b / g; C.x = P, C.y = M, C.z = d;
|
|
var S = (0, Cesium.extend2Earth)(C, e, u);
|
|
S ? (m.push(P, M, d), p.push(1, 1), A.push(y), y++) : (A.push(-1), S = s)
|
|
} w.push(A)
|
|
}
|
|
for (var F, E, T = [0, w.length - 1], R = 0; R < T.length; R++)
|
|
for (var x = T[R], b = 1; b < w[x].length; b++)
|
|
F = w[x][b - 1], E = w[x][b], F >= 0 && E >= 0 && f.push(0, F, E);
|
|
for (var G = [0, w[0].length - 1], V = 0; V < G.length; V++)
|
|
for (var b = G[V], x = 1; x < w.length; x++)
|
|
F = w[x - 1][b], E = w[x][b], F >= 0 && E >= 0 && f.push(0, F, E);
|
|
m = new Float32Array(m), f = new Int32Array(f), p = new Float32Array(p);
|
|
var D = {
|
|
position: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: m
|
|
}),
|
|
st: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
componentsPerAttribute: 2,
|
|
values: p
|
|
})
|
|
},
|
|
L = Cesium.BoundingSphere.fromVertices(m),
|
|
O = new Cesium.Geometry({
|
|
attributes: D,
|
|
indices: f,
|
|
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
boundingSphere: L
|
|
});
|
|
return (0, Cesium.computeVertexNormals)(O), m = [], f = [], O
|
|
},
|
|
n.createOutlineGeometry = function (t) {
|
|
for (var e = t._bottomWidth,
|
|
i = t._bottomHeight,
|
|
n = t._topWidth,
|
|
r = t._topHeight,
|
|
a = t._zReverse,
|
|
s = (a ? -1 : 1) * t._length,
|
|
u = new Float32Array(24),
|
|
l = [], h = [], d = [0, s], m = [e, n], f = [i, r], p = 0, c = 0; c < 2; c++)
|
|
u[3 * p] = -m[c] / 2, u[3 * p + 1] = -f[c] / 2, u[3 * p + 2] = d[c], h[2 * p] = c, h[2 * p + 1] = 0, p++ ,
|
|
u[3 * p] = -m[c] / 2, u[3 * p + 1] = f[c] / 2, u[3 * p + 2] = d[c], h[2 * p] = c, h[2 * p + 1] = 0, p++ ,
|
|
u[3 * p] = m[c] / 2, u[3 * p + 1] = f[c] / 2, u[3 * p + 2] = d[c], h[2 * p] = c, h[2 * p + 1] = 0, p++ ,
|
|
u[3 * p] = m[c] / 2, u[3 * p + 1] = -f[c] / 2, u[3 * p + 2] = d[c], h[2 * p] = c, h[2 * p + 1] = 0, p++;
|
|
l.push(0, 1, 1, 2), l.push(2, 3, 3, 0), l.push(0, 4), l.push(1, 5), l.push(2, 6), l.push(3, 7), l.push(4, 5, 5, 6),
|
|
l.push(6, 7, 7, 4), l = new Int16Array(l), h = new Float32Array(h);
|
|
var _ = {
|
|
position: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: u
|
|
}),
|
|
st: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
componentsPerAttribute: 2,
|
|
values: h
|
|
})
|
|
},
|
|
g = Cesium.BoundingSphere.fromVertices(u),
|
|
v = new Cesium.Geometry({
|
|
attributes: _, indices: l,
|
|
primitiveType: Cesium.PrimitiveType.LINES,
|
|
boundingSphere: g
|
|
});
|
|
return u = [], l = [], v
|
|
},
|
|
n.createOutlineGeometry2 = function (t) {
|
|
var e = (t._bottomWidth, t._bottomHeight, t._topWidth),
|
|
i = t._topHeight,
|
|
n = t._zReverse,
|
|
r = (n ? -1 : 1) * t._length,
|
|
s = [], u = [], l = [], h = e / 2,
|
|
d = i / 2, m = 0; s.push(0, 0, 0), l.push(1, 1), m++;
|
|
for (var f = [], p = -16; p < 16; p++) {
|
|
for (var c = [], _ = -16; _ < 16; _++) {
|
|
c.push(m); var g = d * p / 16, v = h * _ / 16; s.push(v, g, r), l.push(1, 1), m++
|
|
} f.push(c)
|
|
}
|
|
for (var y, C, w = [0, f.length - 1], x = 0; x < w.length; x++)
|
|
for (var p = w[x], _ = 1; _ < f[p].length; _++)
|
|
y = f[p][_ - 1], C = f[p][_], u.push(0, y, C);
|
|
for (var A = [0, f[0].length - 1], b = 0; b < A.length; b++)
|
|
for (var _ = A[b], p = 1; p < f.length; p++)
|
|
y = f[p - 1][_], C = f[p][_], u.push(0, y, C);
|
|
s = new Float32Array(s), u = new Int16Array(u),
|
|
l = new Float32Array(l);
|
|
var M = {
|
|
position: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: s
|
|
}),
|
|
st: new Cesium.GeometryAttribute({
|
|
componentDatatype: Cesium.ComponentDatatype.FLOAT,
|
|
componentsPerAttribute: 2,
|
|
values: l
|
|
})
|
|
},
|
|
P = Cesium.BoundingSphere.fromVertices(s),
|
|
S = new Cesium.Geometry({
|
|
attributes: M,
|
|
indices: u,
|
|
primitiveType: Cesium.PrimitiveType.TRIANGLES,
|
|
boundingSphere: P
|
|
});
|
|
return (0, a.computeVertexNormals)(S),
|
|
Cesium.GeometryPipeline.toWireframe(S), s = [], u = [], S
|
|
},
|
|
n.fromAnglesLength = function (t, e, i, r) {
|
|
var a = {
|
|
length: i,
|
|
zReverse: r,
|
|
bottomHeight: i,
|
|
bottomWidth: i,
|
|
topHeight: i,
|
|
topWidth: i
|
|
};
|
|
return t = Cesium.Math.toRadians(t),
|
|
e = Cesium.Math.toRadians(e),
|
|
r ? (a.bottomHeight = 0, a.bottomWidth = 0,
|
|
a.topHeight = i * Math.tan(t),
|
|
a.topWidth = i * Math.tan(e)) : (a.topHeight = 0, a.topWidth = 0,
|
|
a.bottomHeight = i * Math.tan(t),
|
|
a.bottomWidth = i * Math.tan(e)), new n(a)
|
|
},
|
|
Cesium.FourPrismGeometry = n
|
|
})() |