{"version":3,"file":"createBoxOutlineGeometry.js","sources":["../../../../Source/Core/BoxOutlineGeometry.js","../../../../Source/WorkersES6/createBoxOutlineGeometry.js"],"sourcesContent":["import arrayFill from \"./arrayFill.js\";\nimport BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Check from \"./Check.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport GeometryOffsetAttribute from \"./GeometryOffsetAttribute.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\n\nconst diffScratch = new Cartesian3();\n\n/**\n * A description of the outline of a cube centered at the origin.\n *\n * @alias BoxOutlineGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3} options.minimum The minimum x, y, and z coordinates of the box.\n * @param {Cartesian3} options.maximum The maximum x, y, and z coordinates of the box.\n *\n * @see BoxOutlineGeometry.fromDimensions\n * @see BoxOutlineGeometry.createGeometry\n * @see Packable\n *\n * @example\n * const box = new Cesium.BoxOutlineGeometry({\n * maximum : new Cesium.Cartesian3(250000.0, 250000.0, 250000.0),\n * minimum : new Cesium.Cartesian3(-250000.0, -250000.0, -250000.0)\n * });\n * const geometry = Cesium.BoxOutlineGeometry.createGeometry(box);\n */\nfunction BoxOutlineGeometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n const min = options.minimum;\n const max = options.maximum;\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"min\", min);\n Check.typeOf.object(\"max\", max);\n if (\n defined(options.offsetAttribute) &&\n options.offsetAttribute === GeometryOffsetAttribute.TOP\n ) {\n throw new DeveloperError(\n \"GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.\"\n );\n }\n //>>includeEnd('debug');\n\n this._min = Cartesian3.clone(min);\n this._max = Cartesian3.clone(max);\n this._offsetAttribute = options.offsetAttribute;\n this._workerName = \"createBoxOutlineGeometry\";\n}\n\n/**\n * Creates an outline of a cube centered at the origin given its dimensions.\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3} options.dimensions The width, depth, and height of the box stored in the x, y, and z coordinates of the Cartesian3, respectively.\n * @returns {BoxOutlineGeometry}\n *\n * @exception {DeveloperError} All dimensions components must be greater than or equal to zero.\n *\n *\n * @example\n * const box = Cesium.BoxOutlineGeometry.fromDimensions({\n * dimensions : new Cesium.Cartesian3(500000.0, 500000.0, 500000.0)\n * });\n * const geometry = Cesium.BoxOutlineGeometry.createGeometry(box);\n *\n * @see BoxOutlineGeometry.createGeometry\n */\nBoxOutlineGeometry.fromDimensions = function (options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n const dimensions = options.dimensions;\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"dimensions\", dimensions);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.x\", dimensions.x, 0);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.y\", dimensions.y, 0);\n Check.typeOf.number.greaterThanOrEquals(\"dimensions.z\", dimensions.z, 0);\n //>>includeEnd('debug');\n\n const corner = Cartesian3.multiplyByScalar(dimensions, 0.5, new Cartesian3());\n\n return new BoxOutlineGeometry({\n minimum: Cartesian3.negate(corner, new Cartesian3()),\n maximum: corner,\n offsetAttribute: options.offsetAttribute,\n });\n};\n\n/**\n * Creates an outline of a cube from the dimensions of an AxisAlignedBoundingBox.\n *\n * @param {AxisAlignedBoundingBox} boundingBox A description of the AxisAlignedBoundingBox.\n * @returns {BoxOutlineGeometry}\n *\n *\n *\n * @example\n * const aabb = Cesium.AxisAlignedBoundingBox.fromPoints(Cesium.Cartesian3.fromDegreesArray([\n * -72.0, 40.0,\n * -70.0, 35.0,\n * -75.0, 30.0,\n * -70.0, 30.0,\n * -68.0, 40.0\n * ]));\n * const box = Cesium.BoxOutlineGeometry.fromAxisAlignedBoundingBox(aabb);\n *\n * @see BoxOutlineGeometry.createGeometry\n */\nBoxOutlineGeometry.fromAxisAlignedBoundingBox = function (boundingBox) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"boundindBox\", boundingBox);\n //>>includeEnd('debug');\n\n return new BoxOutlineGeometry({\n minimum: boundingBox.minimum,\n maximum: boundingBox.maximum,\n });\n};\n\n/**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\nBoxOutlineGeometry.packedLength = 2 * Cartesian3.packedLength + 1;\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {BoxOutlineGeometry} value The value to pack.\n * @param {Number[]} array The array to pack into.\n * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.\n *\n * @returns {Number[]} The array that was packed into\n */\nBoxOutlineGeometry.pack = function (value, array, startingIndex) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"value\", value);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n Cartesian3.pack(value._min, array, startingIndex);\n Cartesian3.pack(value._max, array, startingIndex + Cartesian3.packedLength);\n array[startingIndex + Cartesian3.packedLength * 2] = defaultValue(\n value._offsetAttribute,\n -1\n );\n\n return array;\n};\n\nconst scratchMin = new Cartesian3();\nconst scratchMax = new Cartesian3();\nconst scratchOptions = {\n minimum: scratchMin,\n maximum: scratchMax,\n offsetAttribute: undefined,\n};\n\n/**\n * Retrieves an instance from a packed array.\n *\n * @param {Number[]} array The packed array.\n * @param {Number} [startingIndex=0] The starting index of the element to be unpacked.\n * @param {BoxOutlineGeometry} [result] The object into which to store the result.\n * @returns {BoxOutlineGeometry} The modified result parameter or a new BoxOutlineGeometry instance if one was not provided.\n */\nBoxOutlineGeometry.unpack = function (array, startingIndex, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n const min = Cartesian3.unpack(array, startingIndex, scratchMin);\n const max = Cartesian3.unpack(\n array,\n startingIndex + Cartesian3.packedLength,\n scratchMax\n );\n const offsetAttribute = array[startingIndex + Cartesian3.packedLength * 2];\n\n if (!defined(result)) {\n scratchOptions.offsetAttribute =\n offsetAttribute === -1 ? undefined : offsetAttribute;\n return new BoxOutlineGeometry(scratchOptions);\n }\n\n result._min = Cartesian3.clone(min, result._min);\n result._max = Cartesian3.clone(max, result._max);\n result._offsetAttribute =\n offsetAttribute === -1 ? undefined : offsetAttribute;\n\n return result;\n};\n\n/**\n * Computes the geometric representation of an outline of a box, including its vertices, indices, and a bounding sphere.\n *\n * @param {BoxOutlineGeometry} boxGeometry A description of the box outline.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nBoxOutlineGeometry.createGeometry = function (boxGeometry) {\n const min = boxGeometry._min;\n const max = boxGeometry._max;\n\n if (Cartesian3.equals(min, max)) {\n return;\n }\n\n const attributes = new GeometryAttributes();\n const indices = new Uint16Array(12 * 2);\n const positions = new Float64Array(8 * 3);\n\n positions[0] = min.x;\n positions[1] = min.y;\n positions[2] = min.z;\n positions[3] = max.x;\n positions[4] = min.y;\n positions[5] = min.z;\n positions[6] = max.x;\n positions[7] = max.y;\n positions[8] = min.z;\n positions[9] = min.x;\n positions[10] = max.y;\n positions[11] = min.z;\n\n positions[12] = min.x;\n positions[13] = min.y;\n positions[14] = max.z;\n positions[15] = max.x;\n positions[16] = min.y;\n positions[17] = max.z;\n positions[18] = max.x;\n positions[19] = max.y;\n positions[20] = max.z;\n positions[21] = min.x;\n positions[22] = max.y;\n positions[23] = max.z;\n\n attributes.position = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: positions,\n });\n\n // top\n indices[0] = 4;\n indices[1] = 5;\n indices[2] = 5;\n indices[3] = 6;\n indices[4] = 6;\n indices[5] = 7;\n indices[6] = 7;\n indices[7] = 4;\n\n // bottom\n indices[8] = 0;\n indices[9] = 1;\n indices[10] = 1;\n indices[11] = 2;\n indices[12] = 2;\n indices[13] = 3;\n indices[14] = 3;\n indices[15] = 0;\n\n // left\n indices[16] = 0;\n indices[17] = 4;\n indices[18] = 1;\n indices[19] = 5;\n\n //right\n indices[20] = 2;\n indices[21] = 6;\n indices[22] = 3;\n indices[23] = 7;\n\n const diff = Cartesian3.subtract(max, min, diffScratch);\n const radius = Cartesian3.magnitude(diff) * 0.5;\n\n if (defined(boxGeometry._offsetAttribute)) {\n const length = positions.length;\n const applyOffset = new Uint8Array(length / 3);\n const offsetValue =\n boxGeometry._offsetAttribute === GeometryOffsetAttribute.NONE ? 0 : 1;\n arrayFill(applyOffset, offsetValue);\n attributes.applyOffset = new GeometryAttribute({\n componentDatatype: ComponentDatatype.UNSIGNED_BYTE,\n componentsPerAttribute: 1,\n values: applyOffset,\n });\n }\n\n return new Geometry({\n attributes: attributes,\n indices: indices,\n primitiveType: PrimitiveType.LINES,\n boundingSphere: new BoundingSphere(Cartesian3.ZERO, radius),\n offsetAttribute: boxGeometry._offsetAttribute,\n });\n};\nexport default BoxOutlineGeometry;\n","import BoxOutlineGeometry from \"../Core/BoxOutlineGeometry.js\";\nimport defined from \"../Core/defined.js\";\n\nfunction createBoxOutlineGeometry(boxGeometry, offset) {\n if (defined(offset)) {\n boxGeometry = BoxOutlineGeometry.unpack(boxGeometry, offset);\n }\n return BoxOutlineGeometry.createGeometry(boxGeometry);\n}\nexport default createBoxOutlineGeometry;\n"],"names":["Cartesian3","defaultValue","Check","defined","GeometryOffsetAttribute","DeveloperError","GeometryAttributes","GeometryAttribute","ComponentDatatype","arrayFill","Geometry","PrimitiveType","BoundingSphere"],"mappings":"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,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACvB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACxB;EACA,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;EACxB,EAAE,SA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"}