123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- /* This file is automatically rebuilt by the Cesium build process. */
- define(['./Matrix2-fc7e9822', './RuntimeError-c581ca93', './defaultValue-94c3e563', './EllipseOutlineGeometry-7ecc2ea8', './ComponentDatatype-4a60b8d6', './WebGLConstants-7dccdc96', './GeometryOffsetAttribute-3e8c299c', './Transforms-a076dbe6', './_commonjsHelpers-3aae1032-f55dc0c4', './combine-761d9c3f', './EllipseGeometryLibrary-4199bc89', './GeometryAttribute-2ecf73f6', './GeometryAttributes-7df9bef6', './IndexDatatype-db156785'], (function (Matrix2, RuntimeError, defaultValue, EllipseOutlineGeometry, ComponentDatatype, WebGLConstants, GeometryOffsetAttribute, Transforms, _commonjsHelpers3aae1032, combine, EllipseGeometryLibrary, GeometryAttribute, GeometryAttributes, IndexDatatype) { 'use strict';
- /**
- * A description of the outline of a circle on the ellipsoid.
- *
- * @alias CircleOutlineGeometry
- * @constructor
- *
- * @param {Object} options Object with the following properties:
- * @param {Cartesian3} options.center The circle's center point in the fixed frame.
- * @param {Number} options.radius The radius in meters.
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid the circle will be on.
- * @param {Number} [options.height=0.0] The distance in meters between the circle and the ellipsoid surface.
- * @param {Number} [options.granularity=0.02] The angular distance between points on the circle in radians.
- * @param {Number} [options.extrudedHeight=0.0] The distance in meters between the circle's extruded face and the ellipsoid surface.
- * @param {Number} [options.numberOfVerticalLines=16] Number of lines to draw between the top and bottom of an extruded circle.
- *
- * @exception {DeveloperError} radius must be greater than zero.
- * @exception {DeveloperError} granularity must be greater than zero.
- *
- * @see CircleOutlineGeometry.createGeometry
- * @see Packable
- *
- * @example
- * // Create a circle.
- * const circle = new Cesium.CircleOutlineGeometry({
- * center : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
- * radius : 100000.0
- * });
- * const geometry = Cesium.CircleOutlineGeometry.createGeometry(circle);
- */
- function CircleOutlineGeometry(options) {
- options = defaultValue.defaultValue(options, defaultValue.defaultValue.EMPTY_OBJECT);
- const radius = options.radius;
- //>>includeStart('debug', pragmas.debug);
- RuntimeError.Check.typeOf.number("radius", radius);
- //>>includeEnd('debug');
- const ellipseGeometryOptions = {
- center: options.center,
- semiMajorAxis: radius,
- semiMinorAxis: radius,
- ellipsoid: options.ellipsoid,
- height: options.height,
- extrudedHeight: options.extrudedHeight,
- granularity: options.granularity,
- numberOfVerticalLines: options.numberOfVerticalLines,
- };
- this._ellipseGeometry = new EllipseOutlineGeometry.EllipseOutlineGeometry(ellipseGeometryOptions);
- this._workerName = "createCircleOutlineGeometry";
- }
- /**
- * The number of elements used to pack the object into an array.
- * @type {Number}
- */
- CircleOutlineGeometry.packedLength = EllipseOutlineGeometry.EllipseOutlineGeometry.packedLength;
- /**
- * Stores the provided instance into the provided array.
- *
- * @param {CircleOutlineGeometry} value The value to pack.
- * @param {Number[]} array The array to pack into.
- * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
- *
- * @returns {Number[]} The array that was packed into
- */
- CircleOutlineGeometry.pack = function (value, array, startingIndex) {
- //>>includeStart('debug', pragmas.debug);
- RuntimeError.Check.typeOf.object("value", value);
- //>>includeEnd('debug');
- return EllipseOutlineGeometry.EllipseOutlineGeometry.pack(
- value._ellipseGeometry,
- array,
- startingIndex
- );
- };
- const scratchEllipseGeometry = new EllipseOutlineGeometry.EllipseOutlineGeometry({
- center: new Matrix2.Cartesian3(),
- semiMajorAxis: 1.0,
- semiMinorAxis: 1.0,
- });
- const scratchOptions = {
- center: new Matrix2.Cartesian3(),
- radius: undefined,
- ellipsoid: Matrix2.Ellipsoid.clone(Matrix2.Ellipsoid.UNIT_SPHERE),
- height: undefined,
- extrudedHeight: undefined,
- granularity: undefined,
- numberOfVerticalLines: undefined,
- semiMajorAxis: undefined,
- semiMinorAxis: undefined,
- };
- /**
- * Retrieves an instance from a packed array.
- *
- * @param {Number[]} array The packed array.
- * @param {Number} [startingIndex=0] The starting index of the element to be unpacked.
- * @param {CircleOutlineGeometry} [result] The object into which to store the result.
- * @returns {CircleOutlineGeometry} The modified result parameter or a new CircleOutlineGeometry instance if one was not provided.
- */
- CircleOutlineGeometry.unpack = function (array, startingIndex, result) {
- const ellipseGeometry = EllipseOutlineGeometry.EllipseOutlineGeometry.unpack(
- array,
- startingIndex,
- scratchEllipseGeometry
- );
- scratchOptions.center = Matrix2.Cartesian3.clone(
- ellipseGeometry._center,
- scratchOptions.center
- );
- scratchOptions.ellipsoid = Matrix2.Ellipsoid.clone(
- ellipseGeometry._ellipsoid,
- scratchOptions.ellipsoid
- );
- scratchOptions.height = ellipseGeometry._height;
- scratchOptions.extrudedHeight = ellipseGeometry._extrudedHeight;
- scratchOptions.granularity = ellipseGeometry._granularity;
- scratchOptions.numberOfVerticalLines = ellipseGeometry._numberOfVerticalLines;
- if (!defaultValue.defined(result)) {
- scratchOptions.radius = ellipseGeometry._semiMajorAxis;
- return new CircleOutlineGeometry(scratchOptions);
- }
- scratchOptions.semiMajorAxis = ellipseGeometry._semiMajorAxis;
- scratchOptions.semiMinorAxis = ellipseGeometry._semiMinorAxis;
- result._ellipseGeometry = new EllipseOutlineGeometry.EllipseOutlineGeometry(scratchOptions);
- return result;
- };
- /**
- * Computes the geometric representation of an outline of a circle on an ellipsoid, including its vertices, indices, and a bounding sphere.
- *
- * @param {CircleOutlineGeometry} circleGeometry A description of the circle.
- * @returns {Geometry|undefined} The computed vertices and indices.
- */
- CircleOutlineGeometry.createGeometry = function (circleGeometry) {
- return EllipseOutlineGeometry.EllipseOutlineGeometry.createGeometry(circleGeometry._ellipseGeometry);
- };
- function createCircleOutlineGeometry(circleGeometry, offset) {
- if (defaultValue.defined(offset)) {
- circleGeometry = CircleOutlineGeometry.unpack(circleGeometry, offset);
- }
- circleGeometry._ellipseGeometry._center = Matrix2.Cartesian3.clone(
- circleGeometry._ellipseGeometry._center
- );
- circleGeometry._ellipseGeometry._ellipsoid = Matrix2.Ellipsoid.clone(
- circleGeometry._ellipseGeometry._ellipsoid
- );
- return CircleOutlineGeometry.createGeometry(circleGeometry);
- }
- return createCircleOutlineGeometry;
- }));
|