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.

677 lines
24 KiB

define([
'./when-229515d6',
'./Matrix2-f2da41d4',
'./ArcType-1da7fdca',
'./GeometryOffsetAttribute-ff1e192c',
'./BoundingRectangle-18e42324',
'./Transforms-7cd3197b',
'./RuntimeError-ffe03243',
'./ComponentDatatype-17b06483',
'./EllipsoidGeodesic-43ba18de',
'./EllipsoidTangentPlane-b27cd2f7',
'./GeometryAttribute-80036e07',
'./GeometryInstance-16601d2a',
'./GeometryPipeline-5b3fba53',
'./IndexDatatype-b10faa0b',
'./PolygonGeometryLibrary-f129e954',
'./PolygonPipeline-5582b1ec',
'./VertexFormat-565d6a6c',
'./combine-8ce3f24b',
'./WebGLConstants-4e26b85a',
'./AxisAlignedBoundingBox-1feb0c48',
'./IntersectionTests-1b8a3cb9',
'./Plane-0421a8be',
'./AttributeCompression-0af3c035',
'./EncodedCartesian3-d4f305ce',
'./arrayRemoveDuplicates-bb548aa3',
'./EllipsoidRhumbLine-afd6cd20',
'./GeometryAttributes-b253752a',
], function (e, t, r, a, o, i, n, s, l, u, p, c, m, y, g, d, h, f, b, v, _, P, x, w, C, T, I) {
'use strict';
var A = new t.Cartographic(),
E = new t.Cartographic();
function G(e, t, r, a) {
var o = a.cartesianToCartographic(e, A).height,
i = a.cartesianToCartographic(t, E);
(i.height = o), a.cartographicToCartesian(i, t);
var n = a.cartesianToCartographic(r, E);
(n.height = o - 100), a.cartographicToCartesian(n, r);
}
var O = new o.BoundingRectangle(),
V = new t.Cartesian3(),
F = new t.Cartesian3(),
D = new t.Cartesian3(),
L = new t.Cartesian3(),
N = new t.Cartesian3(),
H = new t.Cartesian3(),
R = new t.Cartesian3(),
M = new t.Cartesian3(),
S = new t.Cartesian3(),
B = new t.Cartesian2(),
k = new t.Cartesian2(),
z = new t.Cartesian3(),
W = new i.Quaternion(),
Y = new t.Matrix3(),
U = new t.Matrix3();
function j(r) {
var o = r.vertexFormat,
n = r.geometry,
l = r.shadowVolume,
u = n.attributes.position.values,
c = u.length,
m = r.wall,
y = r.top || m,
g = r.bottom || m;
if (o.st || o.normal || o.tangent || o.bitangent || l) {
var d = r.boundingRectangle,
h = r.tangentPlane,
f = r.ellipsoid,
b = r.stRotation,
v = r.perPositionHeight,
_ = B;
(_.x = d.x), (_.y = d.y);
var P,
x = o.st ? new Float32Array((c / 3) * 2) : void 0;
o.normal && (P = v && y && !m ? n.attributes.normal.values : new Float32Array(c));
var w = o.tangent ? new Float32Array(c) : void 0,
C = o.bitangent ? new Float32Array(c) : void 0,
T = l ? new Float32Array(c) : void 0,
I = 0,
A = 0,
E = F,
O = D,
j = L,
Q = !0,
q = Y,
K = U;
if (0 !== b) {
var Z = i.Quaternion.fromAxisAngle(h._plane.normal, b, W);
(q = t.Matrix3.fromQuaternion(Z, q)),
(Z = i.Quaternion.fromAxisAngle(h._plane.normal, -b, W)),
(K = t.Matrix3.fromQuaternion(Z, K));
} else
(q = t.Matrix3.clone(t.Matrix3.IDENTITY, q)), (K = t.Matrix3.clone(t.Matrix3.IDENTITY, K));
var J = 0,
X = 0;
y && g && ((J = c / 2), (X = c / 3), (c /= 2));
for (var $ = 0; $ < c; $ += 3) {
var ee = t.Cartesian3.fromArray(u, $, z);
if (o.st) {
var te = t.Matrix3.multiplyByVector(q, ee, V);
te = f.scaleToGeodeticSurface(te, te);
var re = h.projectPointOntoPlane(te, k);
t.Cartesian2.subtract(re, _, re);
var ae = s.CesiumMath.clamp(re.x / d.width, 0, 1),
oe = s.CesiumMath.clamp(re.y / d.height, 0, 1);
g && ((x[I + X] = ae), (x[I + 1 + X] = oe)),
y && ((x[I] = ae), (x[I + 1] = oe)),
(I += 2);
}
if (o.normal || o.tangent || o.bitangent || l) {
var ie = A + 1,
ne = A + 2;
if (m) {
if ($ + 3 < c) {
var se = t.Cartesian3.fromArray(u, $ + 3, N);
if (Q) {
var le = t.Cartesian3.fromArray(u, $ + c, H);
v && G(ee, se, le, f),
t.Cartesian3.subtract(se, ee, se),
t.Cartesian3.subtract(le, ee, le),
(E = t.Cartesian3.normalize(t.Cartesian3.cross(le, se, E), E)),
(Q = !1);
}
t.Cartesian3.equalsEpsilon(se, ee, s.CesiumMath.EPSILON10) && (Q = !0);
}
(o.tangent || o.bitangent) &&
((j = f.geodeticSurfaceNormal(ee, j)),
o.tangent && (O = t.Cartesian3.normalize(t.Cartesian3.cross(j, E, O), O)));
} else
(E = f.geodeticSurfaceNormal(ee, E)),
(o.tangent || o.bitangent) &&
(v &&
((R = t.Cartesian3.fromArray(P, A, R)),
(M = t.Cartesian3.cross(t.Cartesian3.UNIT_Z, R, M)),
(M = t.Cartesian3.normalize(t.Matrix3.multiplyByVector(K, M, M), M)),
o.bitangent && (S = t.Cartesian3.normalize(t.Cartesian3.cross(R, M, S), S))),
(O = t.Cartesian3.cross(t.Cartesian3.UNIT_Z, E, O)),
(O = t.Cartesian3.normalize(t.Matrix3.multiplyByVector(K, O, O), O)),
o.bitangent && (j = t.Cartesian3.normalize(t.Cartesian3.cross(E, O, j), j)));
o.normal &&
(r.wall
? ((P[A + J] = E.x), (P[ie + J] = E.y), (P[ne + J] = E.z))
: g && ((P[A + J] = -E.x), (P[ie + J] = -E.y), (P[ne + J] = -E.z)),
((y && !v) || m) && ((P[A] = E.x), (P[ie] = E.y), (P[ne] = E.z))),
l &&
(m && (E = f.geodeticSurfaceNormal(ee, E)),
(T[A + J] = -E.x),
(T[ie + J] = -E.y),
(T[ne + J] = -E.z)),
o.tangent &&
(r.wall
? ((w[A + J] = O.x), (w[ie + J] = O.y), (w[ne + J] = O.z))
: g && ((w[A + J] = -O.x), (w[ie + J] = -O.y), (w[ne + J] = -O.z)),
y &&
(v
? ((w[A] = M.x), (w[ie] = M.y), (w[ne] = M.z))
: ((w[A] = O.x), (w[ie] = O.y), (w[ne] = O.z)))),
o.bitangent &&
(g && ((C[A + J] = j.x), (C[ie + J] = j.y), (C[ne + J] = j.z)),
y &&
(v
? ((C[A] = S.x), (C[ie] = S.y), (C[ne] = S.z))
: ((C[A] = j.x), (C[ie] = j.y), (C[ne] = j.z)))),
(A += 3);
}
}
o.st &&
(n.attributes.st = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.FLOAT,
componentsPerAttribute: 2,
values: x,
})),
o.normal &&
(n.attributes.normal = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: P,
})),
o.tangent &&
(n.attributes.tangent = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: w,
})),
o.bitangent &&
(n.attributes.bitangent = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: C,
})),
l &&
(n.attributes.extrudeDirection = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.FLOAT,
componentsPerAttribute: 3,
values: T,
}));
}
if (r.extrude && e.defined(r.offsetAttribute)) {
var ue = u.length / 3,
pe = new Uint8Array(ue);
if (r.offsetAttribute === a.GeometryOffsetAttribute.TOP)
(y && g) || m ? (pe = a.arrayFill(pe, 1, 0, ue / 2)) : y && (pe = a.arrayFill(pe, 1));
else {
var ce = r.offsetAttribute === a.GeometryOffsetAttribute.NONE ? 0 : 1;
pe = a.arrayFill(pe, ce);
}
n.attributes.applyOffset = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.UNSIGNED_BYTE,
componentsPerAttribute: 1,
values: pe,
});
}
return n;
}
var Q = new t.Cartographic(),
q = new t.Cartographic(),
K = { westOverIDL: 0, eastOverIDL: 0 },
Z = new l.EllipsoidGeodesic();
function J(a, o, i, n, u) {
if (((u = e.defaultValue(u, new t.Rectangle())), !e.defined(a) || a.length < 3))
return (u.west = 0), (u.north = 0), (u.south = 0), (u.east = 0), u;
if (i === r.ArcType.RHUMB) return t.Rectangle.fromCartesianArray(a, o, u);
Z.ellipsoid.equals(o) || (Z = new l.EllipsoidGeodesic(void 0, void 0, o)),
(u.west = Number.POSITIVE_INFINITY),
(u.east = Number.NEGATIVE_INFINITY),
(u.south = Number.POSITIVE_INFINITY),
(u.north = Number.NEGATIVE_INFINITY),
(K.westOverIDL = Number.POSITIVE_INFINITY),
(K.eastOverIDL = Number.NEGATIVE_INFINITY);
for (
var p,
c = 1 / s.CesiumMath.chordLength(n, o.maximumRadius),
m = a.length,
y = o.cartesianToCartographic(a[0], q),
g = Q,
d = 1;
d < m;
d++
)
(p = g),
(g = y),
(y = o.cartesianToCartographic(a[d], p)),
Z.setEndPoints(g, y),
$(Z, c, u, K);
return (
(p = g),
(g = y),
(y = o.cartesianToCartographic(a[0], p)),
Z.setEndPoints(g, y),
$(Z, c, u, K),
u.east - u.west > K.eastOverIDL - K.westOverIDL &&
((u.west = K.westOverIDL),
(u.east = K.eastOverIDL),
u.east > s.CesiumMath.PI && (u.east = u.east - s.CesiumMath.TWO_PI),
u.west > s.CesiumMath.PI && (u.west = u.west - s.CesiumMath.TWO_PI)),
u
);
}
var X = new t.Cartographic();
function $(e, t, r, a) {
for (
var o = e.surfaceDistance,
i = Math.ceil(o * t),
n = i > 0 ? o / (i - 1) : Number.POSITIVE_INFINITY,
l = 0,
u = 0;
u < i;
u++
) {
var p = e.interpolateUsingSurfaceDistance(l, X);
l += n;
var c = p.longitude,
m = p.latitude;
(r.west = Math.min(r.west, c)),
(r.east = Math.max(r.east, c)),
(r.south = Math.min(r.south, m)),
(r.north = Math.max(r.north, m));
var y = c >= 0 ? c : c + s.CesiumMath.TWO_PI;
(a.westOverIDL = Math.min(a.westOverIDL, y)), (a.eastOverIDL = Math.max(a.eastOverIDL, y));
}
}
var ee = [];
function te(e, t, r, a, o, i, n, s, l) {
var p,
m = { walls: [] };
if (i || n) {
var h,
f,
b = g.PolygonGeometryLibrary.createGeometryFromPositions(e, t, r, o, s, l),
v = b.attributes.position.values,
_ = b.indices;
if (i && n) {
var P = v.concat(v);
(h = P.length / 3), (f = y.IndexDatatype.createTypedArray(h, 2 * _.length)).set(_);
var x = _.length,
w = h / 2;
for (p = 0; p < x; p += 3) {
var C = f[p] + w,
T = f[p + 1] + w,
I = f[p + 2] + w;
(f[p + x] = I), (f[p + 1 + x] = T), (f[p + 2 + x] = C);
}
if (((b.attributes.position.values = P), o && s.normal)) {
var A = b.attributes.normal.values;
(b.attributes.normal.values = new Float32Array(P.length)),
b.attributes.normal.values.set(A);
}
b.indices = f;
} else if (n) {
for (
h = v.length / 3, f = y.IndexDatatype.createTypedArray(h, _.length), p = 0;
p < _.length;
p += 3
)
(f[p] = _[p + 2]), (f[p + 1] = _[p + 1]), (f[p + 2] = _[p]);
b.indices = f;
}
m.topAndBottom = new c.GeometryInstance({ geometry: b });
}
var E = a.outerRing,
G = u.EllipsoidTangentPlane.fromPoints(E, e),
O = G.projectPointsOntoPlane(E, ee),
V = d.PolygonPipeline.computeWindingOrder2D(O);
V === d.WindingOrder.CLOCKWISE && (E = E.slice().reverse());
var F = g.PolygonGeometryLibrary.computeWallGeometry(E, e, r, o, l);
m.walls.push(new c.GeometryInstance({ geometry: F }));
var D = a.holes;
for (p = 0; p < D.length; p++) {
var L = D[p];
(O = (G = u.EllipsoidTangentPlane.fromPoints(L, e)).projectPointsOntoPlane(L, ee)),
(V = d.PolygonPipeline.computeWindingOrder2D(O)) === d.WindingOrder.COUNTER_CLOCKWISE &&
(L = L.slice().reverse()),
(F = g.PolygonGeometryLibrary.computeWallGeometry(L, e, r, o, l)),
m.walls.push(new c.GeometryInstance({ geometry: F }));
}
return m;
}
function re(a) {
var o = a.polygonHierarchy,
i = e.defaultValue(a.vertexFormat, h.VertexFormat.DEFAULT),
n = e.defaultValue(a.ellipsoid, t.Ellipsoid.WGS84),
l = e.defaultValue(a.granularity, s.CesiumMath.RADIANS_PER_DEGREE),
u = e.defaultValue(a.stRotation, 0),
p = e.defaultValue(a.perPositionHeight, !1),
c = p && e.defined(a.extrudedHeight),
m = e.defaultValue(a.height, 0),
y = e.defaultValue(a.extrudedHeight, m);
if (!c) {
var d = Math.max(m, y);
(y = Math.min(m, y)), (m = d);
}
(this._vertexFormat = h.VertexFormat.clone(i)),
(this._ellipsoid = t.Ellipsoid.clone(n)),
(this._granularity = l),
(this._stRotation = u),
(this._height = m),
(this._extrudedHeight = y),
(this._closeTop = e.defaultValue(a.closeTop, !0)),
(this._closeBottom = e.defaultValue(a.closeBottom, !0)),
(this._polygonHierarchy = o),
(this._perPositionHeight = p),
(this._perPositionHeightExtrude = c),
(this._shadowVolume = e.defaultValue(a.shadowVolume, !1)),
(this._workerName = 'createPolygonGeometry'),
(this._offsetAttribute = a.offsetAttribute),
(this._arcType = e.defaultValue(a.arcType, r.ArcType.GEODESIC)),
(this._rectangle = void 0),
(this._textureCoordinateRotationPoints = void 0),
(this.packedLength =
g.PolygonGeometryLibrary.computeHierarchyPackedLength(o) +
t.Ellipsoid.packedLength +
h.VertexFormat.packedLength +
12);
}
(re.fromPositions = function (t) {
return new re({
polygonHierarchy: {
positions: (t = e.defaultValue(t, e.defaultValue.EMPTY_OBJECT)).positions,
},
height: t.height,
extrudedHeight: t.extrudedHeight,
vertexFormat: t.vertexFormat,
stRotation: t.stRotation,
ellipsoid: t.ellipsoid,
granularity: t.granularity,
perPositionHeight: t.perPositionHeight,
closeTop: t.closeTop,
closeBottom: t.closeBottom,
offsetAttribute: t.offsetAttribute,
arcType: t.arcType,
});
}),
(re.pack = function (r, a, o) {
return (
(o = e.defaultValue(o, 0)),
(o = g.PolygonGeometryLibrary.packPolygonHierarchy(r._polygonHierarchy, a, o)),
t.Ellipsoid.pack(r._ellipsoid, a, o),
(o += t.Ellipsoid.packedLength),
h.VertexFormat.pack(r._vertexFormat, a, o),
(o += h.VertexFormat.packedLength),
(a[o++] = r._height),
(a[o++] = r._extrudedHeight),
(a[o++] = r._granularity),
(a[o++] = r._stRotation),
(a[o++] = r._perPositionHeightExtrude ? 1 : 0),
(a[o++] = r._perPositionHeight ? 1 : 0),
(a[o++] = r._closeTop ? 1 : 0),
(a[o++] = r._closeBottom ? 1 : 0),
(a[o++] = r._shadowVolume ? 1 : 0),
(a[o++] = e.defaultValue(r._offsetAttribute, -1)),
(a[o++] = r._arcType),
(a[o] = r.packedLength),
a
);
});
var ae = t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),
oe = new h.VertexFormat(),
ie = { polygonHierarchy: {} };
return (
(re.unpack = function (r, a, o) {
a = e.defaultValue(a, 0);
var i = g.PolygonGeometryLibrary.unpackPolygonHierarchy(r, a);
(a = i.startingIndex), delete i.startingIndex;
var n = t.Ellipsoid.unpack(r, a, ae);
a += t.Ellipsoid.packedLength;
var s = h.VertexFormat.unpack(r, a, oe);
a += h.VertexFormat.packedLength;
var l = r[a++],
u = r[a++],
p = r[a++],
c = r[a++],
m = 1 === r[a++],
y = 1 === r[a++],
d = 1 === r[a++],
f = 1 === r[a++],
b = 1 === r[a++],
v = r[a++],
_ = r[a++],
P = r[a];
return (
e.defined(o) || (o = new re(ie)),
(o._polygonHierarchy = i),
(o._ellipsoid = t.Ellipsoid.clone(n, o._ellipsoid)),
(o._vertexFormat = h.VertexFormat.clone(s, o._vertexFormat)),
(o._height = l),
(o._extrudedHeight = u),
(o._granularity = p),
(o._stRotation = c),
(o._perPositionHeightExtrude = m),
(o._perPositionHeight = y),
(o._closeTop = d),
(o._closeBottom = f),
(o._shadowVolume = b),
(o._offsetAttribute = -1 === v ? void 0 : v),
(o._arcType = _),
(o.packedLength = P),
o
);
}),
(re.computeRectangle = function (a, o) {
var i = e.defaultValue(a.granularity, s.CesiumMath.RADIANS_PER_DEGREE),
n = e.defaultValue(a.arcType, r.ArcType.GEODESIC),
l = a.polygonHierarchy,
u = e.defaultValue(a.ellipsoid, t.Ellipsoid.WGS84);
return J(l.positions, u, n, i, o);
}),
(re.createGeometry = function (t) {
var r = t._vertexFormat,
o = t._ellipsoid,
n = t._granularity,
l = t._stRotation,
h = t._polygonHierarchy,
f = t._perPositionHeight,
b = t._closeTop,
v = t._closeBottom,
_ = t._arcType,
P = h.positions;
if (!(P.length < 3)) {
var x = u.EllipsoidTangentPlane.fromPoints(P, o),
w = g.PolygonGeometryLibrary.polygonsFromHierarchy(
h,
x.projectPointsOntoPlane.bind(x),
!f,
o
),
C = w.hierarchy,
T = w.polygons;
if (0 !== C.length) {
P = C[0].outerRing;
var I,
A = g.PolygonGeometryLibrary.computeBoundingRectangle(
x.plane.normal,
x.projectPointOntoPlane.bind(x),
P,
l,
O
),
E = [],
G = t._height,
V = t._extrudedHeight,
F = {
perPositionHeight: f,
vertexFormat: r,
geometry: void 0,
tangentPlane: x,
boundingRectangle: A,
ellipsoid: o,
stRotation: l,
bottom: !1,
top: !0,
wall: !1,
extrude: !1,
arcType: _,
};
if (
t._perPositionHeightExtrude ||
!s.CesiumMath.equalsEpsilon(G, V, 0, s.CesiumMath.EPSILON2)
)
for (
F.extrude = !0,
F.top = b,
F.bottom = v,
F.shadowVolume = t._shadowVolume,
F.offsetAttribute = t._offsetAttribute,
I = 0;
I < T.length;
I++
) {
var D,
L = te(o, T[I], n, C[I], f, b, v, r, _);
b && v
? ((D = L.topAndBottom),
(F.geometry = g.PolygonGeometryLibrary.scaleToGeodeticHeightExtruded(
D.geometry,
G,
V,
o,
f
)))
: b
? (((D = L.topAndBottom).geometry.attributes.position.values =
d.PolygonPipeline.scaleToGeodeticHeight(
D.geometry.attributes.position.values,
G,
o,
!f
)),
(F.geometry = D.geometry))
: v &&
(((D = L.topAndBottom).geometry.attributes.position.values =
d.PolygonPipeline.scaleToGeodeticHeight(
D.geometry.attributes.position.values,
V,
o,
!0
)),
(F.geometry = D.geometry)),
(b || v) && ((F.wall = !1), (D.geometry = j(F)), E.push(D));
var N = L.walls;
F.wall = !0;
for (var H = 0; H < N.length; H++) {
var R = N[H];
(F.geometry = g.PolygonGeometryLibrary.scaleToGeodeticHeightExtruded(
R.geometry,
G,
V,
o,
f
)),
(R.geometry = j(F)),
E.push(R);
}
}
else
for (I = 0; I < T.length; I++) {
var M = new c.GeometryInstance({
geometry: g.PolygonGeometryLibrary.createGeometryFromPositions(o, T[I], n, f, r, _),
});
if (
((M.geometry.attributes.position.values = d.PolygonPipeline.scaleToGeodeticHeight(
M.geometry.attributes.position.values,
G,
o,
!f
)),
(F.geometry = M.geometry),
(M.geometry = j(F)),
e.defined(t._offsetAttribute))
) {
var S = M.geometry.attributes.position.values.length,
B = new Uint8Array(S / 3),
k = t._offsetAttribute === a.GeometryOffsetAttribute.NONE ? 0 : 1;
a.arrayFill(B, k),
(M.geometry.attributes.applyOffset = new p.GeometryAttribute({
componentDatatype: s.ComponentDatatype.UNSIGNED_BYTE,
componentsPerAttribute: 1,
values: B,
}));
}
E.push(M);
}
var z = m.GeometryPipeline.combineInstances(E)[0];
(z.attributes.position.values = new Float64Array(z.attributes.position.values)),
(z.indices = y.IndexDatatype.createTypedArray(
z.attributes.position.values.length / 3,
z.indices
));
var W = z.attributes,
Y = i.BoundingSphere.fromVertices(W.position.values);
return (
r.position || delete W.position,
new p.Geometry({
attributes: W,
indices: z.indices,
primitiveType: z.primitiveType,
boundingSphere: Y,
offsetAttribute: t._offsetAttribute,
})
);
}
}
}),
(re.createShadowVolume = function (e, t, r) {
var a = e._granularity,
o = e._ellipsoid,
i = t(a, o),
n = r(a, o);
return new re({
polygonHierarchy: e._polygonHierarchy,
ellipsoid: o,
stRotation: e._stRotation,
granularity: a,
perPositionHeight: !1,
extrudedHeight: i,
height: n,
vertexFormat: h.VertexFormat.POSITION_ONLY,
shadowVolume: !0,
arcType: e._arcType,
});
}),
Object.defineProperties(re.prototype, {
rectangle: {
get: function () {
if (!e.defined(this._rectangle)) {
var t = this._polygonHierarchy.positions;
this._rectangle = J(t, this._ellipsoid, this._arcType, this._granularity);
}
return this._rectangle;
},
},
textureCoordinateRotationPoints: {
get: function () {
return (
e.defined(this._textureCoordinateRotationPoints) ||
(this._textureCoordinateRotationPoints = (function (e) {
var t = -e._stRotation;
if (0 === t) return [0, 0, 0, 1, 1, 0];
var r = e._ellipsoid,
a = e._polygonHierarchy.positions,
o = e.rectangle;
return p.Geometry._textureCoordinateRotationPoints(a, t, r, o);
})(this)),
this._textureCoordinateRotationPoints
);
},
},
}),
function (r, a) {
return (
e.defined(a) && (r = re.unpack(r, a)),
(r._ellipsoid = t.Ellipsoid.clone(r._ellipsoid)),
re.createGeometry(r)
);
}
);
});