1 |
- {"version":3,"file":"GeometryAttribute-e9a8b203.js","sources":["../../../../Source/Core/GeometryType.js","../../../../Source/Core/Matrix2.js","../../../../Source/Core/PrimitiveType.js","../../../../Source/Core/Geometry.js","../../../../Source/Core/GeometryAttribute.js"],"sourcesContent":["/**\n * @private\n */\nvar GeometryType = {\n NONE: 0,\n TRIANGLES: 1,\n LINES: 2,\n POLYLINES: 3,\n};\nexport default Object.freeze(GeometryType);\n","import Cartesian2 from \"./Cartesian2.js\";\nimport Check from \"./Check.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\n\n/**\n * A 2x2 matrix, indexable as a column-major order array.\n * Constructor parameters are in row-major order for code readability.\n * @alias Matrix2\n * @constructor\n * @implements {ArrayLike<number>}\n *\n * @param {Number} [column0Row0=0.0] The value for column 0, row 0.\n * @param {Number} [column1Row0=0.0] The value for column 1, row 0.\n * @param {Number} [column0Row1=0.0] The value for column 0, row 1.\n * @param {Number} [column1Row1=0.0] The value for column 1, row 1.\n *\n * @see Matrix2.fromColumnMajorArray\n * @see Matrix2.fromRowMajorArray\n * @see Matrix2.fromScale\n * @see Matrix2.fromUniformScale\n * @see Matrix3\n * @see Matrix4\n */\nfunction Matrix2(column0Row0, column1Row0, column0Row1, column1Row1) {\n this[0] = defaultValue(column0Row0, 0.0);\n this[1] = defaultValue(column0Row1, 0.0);\n this[2] = defaultValue(column1Row0, 0.0);\n this[3] = defaultValue(column1Row1, 0.0);\n}\n\n/**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\nMatrix2.packedLength = 4;\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {Matrix2} 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 */\nMatrix2.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 array[startingIndex++] = value[0];\n array[startingIndex++] = value[1];\n array[startingIndex++] = value[2];\n array[startingIndex++] = value[3];\n\n return array;\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 {Matrix2} [result] The object into which to store the result.\n * @returns {Matrix2} The modified result parameter or a new Matrix2 instance if one was not provided.\n */\nMatrix2.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 if (!defined(result)) {\n result = new Matrix2();\n }\n\n result[0] = array[startingIndex++];\n result[1] = array[startingIndex++];\n result[2] = array[startingIndex++];\n result[3] = array[startingIndex++];\n return result;\n};\n\n/**\n * Duplicates a Matrix2 instance.\n *\n * @param {Matrix2} matrix The matrix to duplicate.\n * @param {Matrix2} [result] The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter or a new Matrix2 instance if one was not provided. (Returns undefined if matrix is undefined)\n */\nMatrix2.clone = function (matrix, result) {\n if (!defined(matrix)) {\n return undefined;\n }\n if (!defined(result)) {\n return new Matrix2(matrix[0], matrix[2], matrix[1], matrix[3]);\n }\n result[0] = matrix[0];\n result[1] = matrix[1];\n result[2] = matrix[2];\n result[3] = matrix[3];\n return result;\n};\n\n/**\n * Creates a Matrix2 from 4 consecutive elements in an array.\n *\n * @param {Number[]} array The array whose 4 consecutive elements correspond to the positions of the matrix. Assumes column-major order.\n * @param {Number} [startingIndex=0] The offset into the array of the first element, which corresponds to first column first row position in the matrix.\n * @param {Matrix2} [result] The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter or a new Matrix2 instance if one was not provided.\n *\n * @example\n * // Create the Matrix2:\n * // [1.0, 2.0]\n * // [1.0, 2.0]\n *\n * var v = [1.0, 1.0, 2.0, 2.0];\n * var m = Cesium.Matrix2.fromArray(v);\n *\n * // Create same Matrix2 with using an offset into an array\n * var v2 = [0.0, 0.0, 1.0, 1.0, 2.0, 2.0];\n * var m2 = Cesium.Matrix2.fromArray(v2, 2);\n */\nMatrix2.fromArray = 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 if (!defined(result)) {\n result = new Matrix2();\n }\n\n result[0] = array[startingIndex];\n result[1] = array[startingIndex + 1];\n result[2] = array[startingIndex + 2];\n result[3] = array[startingIndex + 3];\n return result;\n};\n\n/**\n * Creates a Matrix2 instance from a column-major order array.\n *\n * @param {Number[]} values The column-major order array.\n * @param {Matrix2} [result] The object in which the result will be stored, if undefined a new instance will be created.\n * @returns {Matrix2} The modified result parameter, or a new Matrix2 instance if one was not provided.\n */\nMatrix2.fromColumnMajorArray = function (values, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"values\", values);\n //>>includeEnd('debug');\n\n return Matrix2.clone(values, result);\n};\n\n/**\n * Creates a Matrix2 instance from a row-major order array.\n * The resulting matrix will be in column-major order.\n *\n * @param {Number[]} values The row-major order array.\n * @param {Matrix2} [result] The object in which the result will be stored, if undefined a new instance will be created.\n * @returns {Matrix2} The modified result parameter, or a new Matrix2 instance if one was not provided.\n */\nMatrix2.fromRowMajorArray = function (values, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"values\", values);\n //>>includeEnd('debug');\n\n if (!defined(result)) {\n return new Matrix2(values[0], values[1], values[2], values[3]);\n }\n result[0] = values[0];\n result[1] = values[2];\n result[2] = values[1];\n result[3] = values[3];\n return result;\n};\n\n/**\n * Computes a Matrix2 instance representing a non-uniform scale.\n *\n * @param {Cartesian2} scale The x and y scale factors.\n * @param {Matrix2} [result] The object in which the result will be stored, if undefined a new instance will be created.\n * @returns {Matrix2} The modified result parameter, or a new Matrix2 instance if one was not provided.\n *\n * @example\n * // Creates\n * // [7.0, 0.0]\n * // [0.0, 8.0]\n * var m = Cesium.Matrix2.fromScale(new Cesium.Cartesian2(7.0, 8.0));\n */\nMatrix2.fromScale = function (scale, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"scale\", scale);\n //>>includeEnd('debug');\n\n if (!defined(result)) {\n return new Matrix2(scale.x, 0.0, 0.0, scale.y);\n }\n\n result[0] = scale.x;\n result[1] = 0.0;\n result[2] = 0.0;\n result[3] = scale.y;\n return result;\n};\n\n/**\n * Computes a Matrix2 instance representing a uniform scale.\n *\n * @param {Number} scale The uniform scale factor.\n * @param {Matrix2} [result] The object in which the result will be stored, if undefined a new instance will be created.\n * @returns {Matrix2} The modified result parameter, or a new Matrix2 instance if one was not provided.\n *\n * @example\n * // Creates\n * // [2.0, 0.0]\n * // [0.0, 2.0]\n * var m = Cesium.Matrix2.fromUniformScale(2.0);\n */\nMatrix2.fromUniformScale = function (scale, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.number(\"scale\", scale);\n //>>includeEnd('debug');\n\n if (!defined(result)) {\n return new Matrix2(scale, 0.0, 0.0, scale);\n }\n\n result[0] = scale;\n result[1] = 0.0;\n result[2] = 0.0;\n result[3] = scale;\n return result;\n};\n\n/**\n * Creates a rotation matrix.\n *\n * @param {Number} angle The angle, in radians, of the rotation. Positive angles are counterclockwise.\n * @param {Matrix2} [result] The object in which the result will be stored, if undefined a new instance will be created.\n * @returns {Matrix2} The modified result parameter, or a new Matrix2 instance if one was not provided.\n *\n * @example\n * // Rotate a point 45 degrees counterclockwise.\n * var p = new Cesium.Cartesian2(5, 6);\n * var m = Cesium.Matrix2.fromRotation(Cesium.Math.toRadians(45.0));\n * var rotated = Cesium.Matrix2.multiplyByVector(m, p, new Cesium.Cartesian2());\n */\nMatrix2.fromRotation = function (angle, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.number(\"angle\", angle);\n //>>includeEnd('debug');\n\n var cosAngle = Math.cos(angle);\n var sinAngle = Math.sin(angle);\n\n if (!defined(result)) {\n return new Matrix2(cosAngle, -sinAngle, sinAngle, cosAngle);\n }\n result[0] = cosAngle;\n result[1] = sinAngle;\n result[2] = -sinAngle;\n result[3] = cosAngle;\n return result;\n};\n\n/**\n * Creates an Array from the provided Matrix2 instance.\n * The array will be in column-major order.\n *\n * @param {Matrix2} matrix The matrix to use..\n * @param {Number[]} [result] The Array onto which to store the result.\n * @returns {Number[]} The modified Array parameter or a new Array instance if one was not provided.\n */\nMatrix2.toArray = function (matrix, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n //>>includeEnd('debug');\n\n if (!defined(result)) {\n return [matrix[0], matrix[1], matrix[2], matrix[3]];\n }\n result[0] = matrix[0];\n result[1] = matrix[1];\n result[2] = matrix[2];\n result[3] = matrix[3];\n return result;\n};\n\n/**\n * Computes the array index of the element at the provided row and column.\n *\n * @param {Number} row The zero-based index of the row.\n * @param {Number} column The zero-based index of the column.\n * @returns {Number} The index of the element at the provided row and column.\n *\n * @exception {DeveloperError} row must be 0 or 1.\n * @exception {DeveloperError} column must be 0 or 1.\n *\n * @example\n * var myMatrix = new Cesium.Matrix2();\n * var column1Row0Index = Cesium.Matrix2.getElementIndex(1, 0);\n * var column1Row0 = myMatrix[column1Row0Index]\n * myMatrix[column1Row0Index] = 10.0;\n */\nMatrix2.getElementIndex = function (column, row) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.number.greaterThanOrEquals(\"row\", row, 0);\n Check.typeOf.number.lessThanOrEquals(\"row\", row, 1);\n\n Check.typeOf.number.greaterThanOrEquals(\"column\", column, 0);\n Check.typeOf.number.lessThanOrEquals(\"column\", column, 1);\n //>>includeEnd('debug');\n\n return column * 2 + row;\n};\n\n/**\n * Retrieves a copy of the matrix column at the provided index as a Cartesian2 instance.\n *\n * @param {Matrix2} matrix The matrix to use.\n * @param {Number} index The zero-based index of the column to retrieve.\n * @param {Cartesian2} result The object onto which to store the result.\n * @returns {Cartesian2} The modified result parameter.\n *\n * @exception {DeveloperError} index must be 0 or 1.\n */\nMatrix2.getColumn = function (matrix, index, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n\n Check.typeOf.number.greaterThanOrEquals(\"index\", index, 0);\n Check.typeOf.number.lessThanOrEquals(\"index\", index, 1);\n\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n var startIndex = index * 2;\n var x = matrix[startIndex];\n var y = matrix[startIndex + 1];\n\n result.x = x;\n result.y = y;\n return result;\n};\n\n/**\n * Computes a new matrix that replaces the specified column in the provided matrix with the provided Cartesian2 instance.\n *\n * @param {Matrix2} matrix The matrix to use.\n * @param {Number} index The zero-based index of the column to set.\n * @param {Cartesian2} cartesian The Cartesian whose values will be assigned to the specified column.\n * @param {Cartesian2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n *\n * @exception {DeveloperError} index must be 0 or 1.\n */\nMatrix2.setColumn = function (matrix, index, cartesian, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n\n Check.typeOf.number.greaterThanOrEquals(\"index\", index, 0);\n Check.typeOf.number.lessThanOrEquals(\"index\", index, 1);\n\n Check.typeOf.object(\"cartesian\", cartesian);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result = Matrix2.clone(matrix, result);\n var startIndex = index * 2;\n result[startIndex] = cartesian.x;\n result[startIndex + 1] = cartesian.y;\n return result;\n};\n\n/**\n * Retrieves a copy of the matrix row at the provided index as a Cartesian2 instance.\n *\n * @param {Matrix2} matrix The matrix to use.\n * @param {Number} index The zero-based index of the row to retrieve.\n * @param {Cartesian2} result The object onto which to store the result.\n * @returns {Cartesian2} The modified result parameter.\n *\n * @exception {DeveloperError} index must be 0 or 1.\n */\nMatrix2.getRow = function (matrix, index, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n\n Check.typeOf.number.greaterThanOrEquals(\"index\", index, 0);\n Check.typeOf.number.lessThanOrEquals(\"index\", index, 1);\n\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n var x = matrix[index];\n var y = matrix[index + 2];\n\n result.x = x;\n result.y = y;\n return result;\n};\n\n/**\n * Computes a new matrix that replaces the specified row in the provided matrix with the provided Cartesian2 instance.\n *\n * @param {Matrix2} matrix The matrix to use.\n * @param {Number} index The zero-based index of the row to set.\n * @param {Cartesian2} cartesian The Cartesian whose values will be assigned to the specified row.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n *\n * @exception {DeveloperError} index must be 0 or 1.\n */\nMatrix2.setRow = function (matrix, index, cartesian, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n\n Check.typeOf.number.greaterThanOrEquals(\"index\", index, 0);\n Check.typeOf.number.lessThanOrEquals(\"index\", index, 1);\n\n Check.typeOf.object(\"cartesian\", cartesian);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result = Matrix2.clone(matrix, result);\n result[index] = cartesian.x;\n result[index + 2] = cartesian.y;\n return result;\n};\n\nvar scratchColumn = new Cartesian2();\n\n/**\n * Extracts the non-uniform scale assuming the matrix is an affine transformation.\n *\n * @param {Matrix2} matrix The matrix.\n * @param {Cartesian2} result The object onto which to store the result.\n * @returns {Cartesian2} The modified result parameter.\n */\nMatrix2.getScale = function (matrix, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result.x = Cartesian2.magnitude(\n Cartesian2.fromElements(matrix[0], matrix[1], scratchColumn)\n );\n result.y = Cartesian2.magnitude(\n Cartesian2.fromElements(matrix[2], matrix[3], scratchColumn)\n );\n return result;\n};\n\nvar scratchScale = new Cartesian2();\n\n/**\n * Computes the maximum scale assuming the matrix is an affine transformation.\n * The maximum scale is the maximum length of the column vectors.\n *\n * @param {Matrix2} matrix The matrix.\n * @returns {Number} The maximum scale.\n */\nMatrix2.getMaximumScale = function (matrix) {\n Matrix2.getScale(matrix, scratchScale);\n return Cartesian2.maximumComponent(scratchScale);\n};\n\n/**\n * Computes the product of two matrices.\n *\n * @param {Matrix2} left The first matrix.\n * @param {Matrix2} right The second matrix.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.multiply = function (left, right, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"left\", left);\n Check.typeOf.object(\"right\", right);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n var column0Row0 = left[0] * right[0] + left[2] * right[1];\n var column1Row0 = left[0] * right[2] + left[2] * right[3];\n var column0Row1 = left[1] * right[0] + left[3] * right[1];\n var column1Row1 = left[1] * right[2] + left[3] * right[3];\n\n result[0] = column0Row0;\n result[1] = column0Row1;\n result[2] = column1Row0;\n result[3] = column1Row1;\n return result;\n};\n\n/**\n * Computes the sum of two matrices.\n *\n * @param {Matrix2} left The first matrix.\n * @param {Matrix2} right The second matrix.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.add = function (left, right, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"left\", left);\n Check.typeOf.object(\"right\", right);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = left[0] + right[0];\n result[1] = left[1] + right[1];\n result[2] = left[2] + right[2];\n result[3] = left[3] + right[3];\n return result;\n};\n\n/**\n * Computes the difference of two matrices.\n *\n * @param {Matrix2} left The first matrix.\n * @param {Matrix2} right The second matrix.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.subtract = function (left, right, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"left\", left);\n Check.typeOf.object(\"right\", right);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = left[0] - right[0];\n result[1] = left[1] - right[1];\n result[2] = left[2] - right[2];\n result[3] = left[3] - right[3];\n return result;\n};\n\n/**\n * Computes the product of a matrix and a column vector.\n *\n * @param {Matrix2} matrix The matrix.\n * @param {Cartesian2} cartesian The column.\n * @param {Cartesian2} result The object onto which to store the result.\n * @returns {Cartesian2} The modified result parameter.\n */\nMatrix2.multiplyByVector = function (matrix, cartesian, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"cartesian\", cartesian);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n var x = matrix[0] * cartesian.x + matrix[2] * cartesian.y;\n var y = matrix[1] * cartesian.x + matrix[3] * cartesian.y;\n\n result.x = x;\n result.y = y;\n return result;\n};\n\n/**\n * Computes the product of a matrix and a scalar.\n *\n * @param {Matrix2} matrix The matrix.\n * @param {Number} scalar The number to multiply by.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.multiplyByScalar = function (matrix, scalar, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.number(\"scalar\", scalar);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = matrix[0] * scalar;\n result[1] = matrix[1] * scalar;\n result[2] = matrix[2] * scalar;\n result[3] = matrix[3] * scalar;\n return result;\n};\n\n/**\n * Computes the product of a matrix times a (non-uniform) scale, as if the scale were a scale matrix.\n *\n * @param {Matrix2} matrix The matrix on the left-hand side.\n * @param {Cartesian2} scale The non-uniform scale on the right-hand side.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n *\n *\n * @example\n * // Instead of Cesium.Matrix2.multiply(m, Cesium.Matrix2.fromScale(scale), m);\n * Cesium.Matrix2.multiplyByScale(m, scale, m);\n *\n * @see Matrix2.fromScale\n * @see Matrix2.multiplyByUniformScale\n */\nMatrix2.multiplyByScale = function (matrix, scale, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"scale\", scale);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = matrix[0] * scale.x;\n result[1] = matrix[1] * scale.x;\n result[2] = matrix[2] * scale.y;\n result[3] = matrix[3] * scale.y;\n return result;\n};\n\n/**\n * Creates a negated copy of the provided matrix.\n *\n * @param {Matrix2} matrix The matrix to negate.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.negate = function (matrix, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = -matrix[0];\n result[1] = -matrix[1];\n result[2] = -matrix[2];\n result[3] = -matrix[3];\n return result;\n};\n\n/**\n * Computes the transpose of the provided matrix.\n *\n * @param {Matrix2} matrix The matrix to transpose.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.transpose = function (matrix, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n var column0Row0 = matrix[0];\n var column0Row1 = matrix[2];\n var column1Row0 = matrix[1];\n var column1Row1 = matrix[3];\n\n result[0] = column0Row0;\n result[1] = column0Row1;\n result[2] = column1Row0;\n result[3] = column1Row1;\n return result;\n};\n\n/**\n * Computes a matrix, which contains the absolute (unsigned) values of the provided matrix's elements.\n *\n * @param {Matrix2} matrix The matrix with signed elements.\n * @param {Matrix2} result The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter.\n */\nMatrix2.abs = function (matrix, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"matrix\", matrix);\n Check.typeOf.object(\"result\", result);\n //>>includeEnd('debug');\n\n result[0] = Math.abs(matrix[0]);\n result[1] = Math.abs(matrix[1]);\n result[2] = Math.abs(matrix[2]);\n result[3] = Math.abs(matrix[3]);\n\n return result;\n};\n\n/**\n * Compares the provided matrices componentwise and returns\n * <code>true</code> if they are equal, <code>false</code> otherwise.\n *\n * @param {Matrix2} [left] The first matrix.\n * @param {Matrix2} [right] The second matrix.\n * @returns {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.\n */\nMatrix2.equals = function (left, right) {\n return (\n left === right ||\n (defined(left) &&\n defined(right) &&\n left[0] === right[0] &&\n left[1] === right[1] &&\n left[2] === right[2] &&\n left[3] === right[3])\n );\n};\n\n/**\n * @private\n */\nMatrix2.equalsArray = function (matrix, array, offset) {\n return (\n matrix[0] === array[offset] &&\n matrix[1] === array[offset + 1] &&\n matrix[2] === array[offset + 2] &&\n matrix[3] === array[offset + 3]\n );\n};\n\n/**\n * Compares the provided matrices componentwise and returns\n * <code>true</code> if they are within the provided epsilon,\n * <code>false</code> otherwise.\n *\n * @param {Matrix2} [left] The first matrix.\n * @param {Matrix2} [right] The second matrix.\n * @param {Number} [epsilon=0] The epsilon to use for equality testing.\n * @returns {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.\n */\nMatrix2.equalsEpsilon = function (left, right, epsilon) {\n epsilon = defaultValue(epsilon, 0);\n return (\n left === right ||\n (defined(left) &&\n defined(right) &&\n Math.abs(left[0] - right[0]) <= epsilon &&\n Math.abs(left[1] - right[1]) <= epsilon &&\n Math.abs(left[2] - right[2]) <= epsilon &&\n Math.abs(left[3] - right[3]) <= epsilon)\n );\n};\n\n/**\n * An immutable Matrix2 instance initialized to the identity matrix.\n *\n * @type {Matrix2}\n * @constant\n */\nMatrix2.IDENTITY = Object.freeze(new Matrix2(1.0, 0.0, 0.0, 1.0));\n\n/**\n * An immutable Matrix2 instance initialized to the zero matrix.\n *\n * @type {Matrix2}\n * @constant\n */\nMatrix2.ZERO = Object.freeze(new Matrix2(0.0, 0.0, 0.0, 0.0));\n\n/**\n * The index into Matrix2 for column 0, row 0.\n *\n * @type {Number}\n * @constant\n *\n * @example\n * var matrix = new Cesium.Matrix2();\n * matrix[Cesium.Matrix2.COLUMN0ROW0] = 5.0; // set column 0, row 0 to 5.0\n */\nMatrix2.COLUMN0ROW0 = 0;\n\n/**\n * The index into Matrix2 for column 0, row 1.\n *\n * @type {Number}\n * @constant\n *\n * @example\n * var matrix = new Cesium.Matrix2();\n * matrix[Cesium.Matrix2.COLUMN0ROW1] = 5.0; // set column 0, row 1 to 5.0\n */\nMatrix2.COLUMN0ROW1 = 1;\n\n/**\n * The index into Matrix2 for column 1, row 0.\n *\n * @type {Number}\n * @constant\n *\n * @example\n * var matrix = new Cesium.Matrix2();\n * matrix[Cesium.Matrix2.COLUMN1ROW0] = 5.0; // set column 1, row 0 to 5.0\n */\nMatrix2.COLUMN1ROW0 = 2;\n\n/**\n * The index into Matrix2 for column 1, row 1.\n *\n * @type {Number}\n * @constant\n *\n * @example\n * var matrix = new Cesium.Matrix2();\n * matrix[Cesium.Matrix2.COLUMN1ROW1] = 5.0; // set column 1, row 1 to 5.0\n */\nMatrix2.COLUMN1ROW1 = 3;\n\nObject.defineProperties(Matrix2.prototype, {\n /**\n * Gets the number of items in the collection.\n * @memberof Matrix2.prototype\n *\n * @type {Number}\n */\n length: {\n get: function () {\n return Matrix2.packedLength;\n },\n },\n});\n\n/**\n * Duplicates the provided Matrix2 instance.\n *\n * @param {Matrix2} [result] The object onto which to store the result.\n * @returns {Matrix2} The modified result parameter or a new Matrix2 instance if one was not provided.\n */\nMatrix2.prototype.clone = function (result) {\n return Matrix2.clone(this, result);\n};\n\n/**\n * Compares this matrix to the provided matrix componentwise and returns\n * <code>true</code> if they are equal, <code>false</code> otherwise.\n *\n * @param {Matrix2} [right] The right hand side matrix.\n * @returns {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.\n */\nMatrix2.prototype.equals = function (right) {\n return Matrix2.equals(this, right);\n};\n\n/**\n * Compares this matrix to the provided matrix componentwise and returns\n * <code>true</code> if they are within the provided epsilon,\n * <code>false</code> otherwise.\n *\n * @param {Matrix2} [right] The right hand side matrix.\n * @param {Number} [epsilon=0] The epsilon to use for equality testing.\n * @returns {Boolean} <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.\n */\nMatrix2.prototype.equalsEpsilon = function (right, epsilon) {\n return Matrix2.equalsEpsilon(this, right, epsilon);\n};\n\n/**\n * Creates a string representing this Matrix with each row being\n * on a separate line and in the format '(column0, column1)'.\n *\n * @returns {String} A string representing the provided Matrix with each row being on a separate line and in the format '(column0, column1)'.\n */\nMatrix2.prototype.toString = function () {\n return (\n \"(\" +\n this[0] +\n \", \" +\n this[2] +\n \")\\n\" +\n \"(\" +\n this[1] +\n \", \" +\n this[3] +\n \")\"\n );\n};\nexport default Matrix2;\n","import WebGLConstants from \"./WebGLConstants.js\";\n\n/**\n * The type of a geometric primitive, i.e., points, lines, and triangles.\n *\n * @enum {Number}\n */\nvar PrimitiveType = {\n /**\n * Points primitive where each vertex (or index) is a separate point.\n *\n * @type {Number}\n * @constant\n */\n POINTS: WebGLConstants.POINTS,\n\n /**\n * Lines primitive where each two vertices (or indices) is a line segment. Line segments are not necessarily connected.\n *\n * @type {Number}\n * @constant\n */\n LINES: WebGLConstants.LINES,\n\n /**\n * Line loop primitive where each vertex (or index) after the first connects a line to\n * the previous vertex, and the last vertex implicitly connects to the first.\n *\n * @type {Number}\n * @constant\n */\n LINE_LOOP: WebGLConstants.LINE_LOOP,\n\n /**\n * Line strip primitive where each vertex (or index) after the first connects a line to the previous vertex.\n *\n * @type {Number}\n * @constant\n */\n LINE_STRIP: WebGLConstants.LINE_STRIP,\n\n /**\n * Triangles primitive where each three vertices (or indices) is a triangle. Triangles do not necessarily share edges.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLES: WebGLConstants.TRIANGLES,\n\n /**\n * Triangle strip primitive where each vertex (or index) after the first two connect to\n * the previous two vertices forming a triangle. For example, this can be used to model a wall.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLE_STRIP: WebGLConstants.TRIANGLE_STRIP,\n\n /**\n * Triangle fan primitive where each vertex (or index) after the first two connect to\n * the previous vertex and the first vertex forming a triangle. For example, this can be used\n * to model a cone or circle.\n *\n * @type {Number}\n * @constant\n */\n TRIANGLE_FAN: WebGLConstants.TRIANGLE_FAN,\n};\n\n/**\n * @private\n */\nPrimitiveType.validate = function (primitiveType) {\n return (\n primitiveType === PrimitiveType.POINTS ||\n primitiveType === PrimitiveType.LINES ||\n primitiveType === PrimitiveType.LINE_LOOP ||\n primitiveType === PrimitiveType.LINE_STRIP ||\n primitiveType === PrimitiveType.TRIANGLES ||\n primitiveType === PrimitiveType.TRIANGLE_STRIP ||\n primitiveType === PrimitiveType.TRIANGLE_FAN\n );\n};\n\nexport default Object.freeze(PrimitiveType);\n","import Cartesian2 from \"./Cartesian2.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport Check from \"./Check.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport GeometryType from \"./GeometryType.js\";\nimport Matrix2 from \"./Matrix2.js\";\nimport Matrix3 from \"./Matrix3.js\";\nimport Matrix4 from \"./Matrix4.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport Quaternion from \"./Quaternion.js\";\nimport Rectangle from \"./Rectangle.js\";\nimport Transforms from \"./Transforms.js\";\n\n/**\n * A geometry representation with attributes forming vertices and optional index data\n * defining primitives. Geometries and an {@link Appearance}, which describes the shading,\n * can be assigned to a {@link Primitive} for visualization. A <code>Primitive</code> can\n * be created from many heterogeneous - in many cases - geometries for performance.\n * <p>\n * Geometries can be transformed and optimized using functions in {@link GeometryPipeline}.\n * </p>\n *\n * @alias Geometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {GeometryAttributes} options.attributes Attributes, which make up the geometry's vertices.\n * @param {PrimitiveType} [options.primitiveType=PrimitiveType.TRIANGLES] The type of primitives in the geometry.\n * @param {Uint16Array|Uint32Array} [options.indices] Optional index data that determines the primitives in the geometry.\n * @param {BoundingSphere} [options.boundingSphere] An optional bounding sphere that fully enclosed the geometry.\n *\n * @see PolygonGeometry\n * @see RectangleGeometry\n * @see EllipseGeometry\n * @see CircleGeometry\n * @see WallGeometry\n * @see SimplePolylineGeometry\n * @see BoxGeometry\n * @see EllipsoidGeometry\n *\n * @demo {@link https://sandcastle.cesium.com/index.html?src=Geometry%20and%20Appearances.html|Geometry and Appearances Demo}\n *\n * @example\n * // Create geometry with a position attribute and indexed lines.\n * var positions = new Float64Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n *\n * var geometry = new Cesium.Geometry({\n * attributes : {\n * position : new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.DOUBLE,\n * componentsPerAttribute : 3,\n * values : positions\n * })\n * },\n * indices : new Uint16Array([0, 1, 1, 2, 2, 0]),\n * primitiveType : Cesium.PrimitiveType.LINES,\n * boundingSphere : Cesium.BoundingSphere.fromVertices(positions)\n * });\n */\nfunction Geometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"options.attributes\", options.attributes);\n //>>includeEnd('debug');\n\n /**\n * Attributes, which make up the geometry's vertices. Each property in this object corresponds to a\n * {@link GeometryAttribute} containing the attribute's data.\n * <p>\n * Attributes are always stored non-interleaved in a Geometry.\n * </p>\n * <p>\n * There are reserved attribute names with well-known semantics. The following attributes\n * are created by a Geometry (depending on the provided {@link VertexFormat}.\n * <ul>\n * <li><code>position</code> - 3D vertex position. 64-bit floating-point (for precision). 3 components per attribute. See {@link VertexFormat#position}.</li>\n * <li><code>normal</code> - Normal (normalized), commonly used for lighting. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#normal}.</li>\n * <li><code>st</code> - 2D texture coordinate. 32-bit floating-point. 2 components per attribute. See {@link VertexFormat#st}.</li>\n * <li><code>bitangent</code> - Bitangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#bitangent}.</li>\n * <li><code>tangent</code> - Tangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See {@link VertexFormat#tangent}.</li>\n * </ul>\n * </p>\n * <p>\n * The following attribute names are generally not created by a Geometry, but are added\n * to a Geometry by a {@link Primitive} or {@link GeometryPipeline} functions to prepare\n * the geometry for rendering.\n * <ul>\n * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position3DLow</code> - Low 32 bits for encoded 64-bit position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position3DHigh</code> - High 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>position2DLow</code> - Low 32 bits for encoded 64-bit 2D (Columbus view) position computed with {@link GeometryPipeline.encodeAttribute}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>color</code> - RGBA color (normalized) usually from {@link GeometryInstance#color}. 32-bit floating-point. 4 components per attribute.</li>\n * <li><code>pickColor</code> - RGBA color used for picking. 32-bit floating-point. 4 components per attribute.</li>\n * </ul>\n * </p>\n *\n * @type GeometryAttributes\n *\n * @default undefined\n *\n *\n * @example\n * geometry.attributes.position = new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.FLOAT,\n * componentsPerAttribute : 3,\n * values : new Float32Array(0)\n * });\n *\n * @see GeometryAttribute\n * @see VertexFormat\n */\n this.attributes = options.attributes;\n\n /**\n * Optional index data that - along with {@link Geometry#primitiveType} -\n * determines the primitives in the geometry.\n *\n * @type Array\n *\n * @default undefined\n */\n this.indices = options.indices;\n\n /**\n * The type of primitives in the geometry. This is most often {@link PrimitiveType.TRIANGLES},\n * but can varying based on the specific geometry.\n *\n * @type PrimitiveType\n *\n * @default undefined\n */\n this.primitiveType = defaultValue(\n options.primitiveType,\n PrimitiveType.TRIANGLES\n );\n\n /**\n * An optional bounding sphere that fully encloses the geometry. This is\n * commonly used for culling.\n *\n * @type BoundingSphere\n *\n * @default undefined\n */\n this.boundingSphere = options.boundingSphere;\n\n /**\n * @private\n */\n this.geometryType = defaultValue(options.geometryType, GeometryType.NONE);\n\n /**\n * @private\n */\n this.boundingSphereCV = options.boundingSphereCV;\n\n /**\n * Used for computing the bounding sphere for geometry using the applyOffset vertex attribute\n * @private\n */\n this.offsetAttribute = options.offsetAttribute;\n}\n\n/**\n * Computes the number of vertices in a geometry. The runtime is linear with\n * respect to the number of attributes in a vertex, not the number of vertices.\n *\n * @param {Geometry} geometry The geometry.\n * @returns {Number} The number of vertices in the geometry.\n *\n * @example\n * var numVertices = Cesium.Geometry.computeNumberOfVertices(geometry);\n */\nGeometry.computeNumberOfVertices = function (geometry) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"geometry\", geometry);\n //>>includeEnd('debug');\n\n var numberOfVertices = -1;\n for (var property in geometry.attributes) {\n if (\n geometry.attributes.hasOwnProperty(property) &&\n defined(geometry.attributes[property]) &&\n defined(geometry.attributes[property].values)\n ) {\n var attribute = geometry.attributes[property];\n var num = attribute.values.length / attribute.componentsPerAttribute;\n //>>includeStart('debug', pragmas.debug);\n if (numberOfVertices !== num && numberOfVertices !== -1) {\n throw new DeveloperError(\n \"All attribute lists must have the same number of attributes.\"\n );\n }\n //>>includeEnd('debug');\n numberOfVertices = num;\n }\n }\n\n return numberOfVertices;\n};\n\nvar rectangleCenterScratch = new Cartographic();\nvar enuCenterScratch = new Cartesian3();\nvar fixedFrameToEnuScratch = new Matrix4();\nvar boundingRectanglePointsCartographicScratch = [\n new Cartographic(),\n new Cartographic(),\n new Cartographic(),\n];\nvar boundingRectanglePointsEnuScratch = [\n new Cartesian2(),\n new Cartesian2(),\n new Cartesian2(),\n];\nvar points2DScratch = [new Cartesian2(), new Cartesian2(), new Cartesian2()];\nvar pointEnuScratch = new Cartesian3();\nvar enuRotationScratch = new Quaternion();\nvar enuRotationMatrixScratch = new Matrix4();\nvar rotation2DScratch = new Matrix2();\n\n/**\n * For remapping texture coordinates when rendering GroundPrimitives with materials.\n * GroundPrimitive texture coordinates are computed to align with the cartographic coordinate system on the globe.\n * However, EllipseGeometry, RectangleGeometry, and PolygonGeometry all bake rotations to per-vertex texture coordinates\n * using different strategies.\n *\n * This method is used by EllipseGeometry and PolygonGeometry to approximate the same visual effect.\n * We encapsulate rotation and scale by computing a \"transformed\" texture coordinate system and computing\n * a set of reference points from which \"cartographic\" texture coordinates can be remapped to the \"transformed\"\n * system using distances to lines in 2D.\n *\n * This approximation becomes less accurate as the covered area increases, especially for GroundPrimitives near the poles,\n * but is generally reasonable for polygons and ellipses around the size of USA states.\n *\n * RectangleGeometry has its own version of this method that computes remapping coordinates using cartographic space\n * as an intermediary instead of local ENU, which is more accurate for large-area rectangles.\n *\n * @param {Cartesian3[]} positions Array of positions outlining the geometry\n * @param {Number} stRotation Texture coordinate rotation.\n * @param {Ellipsoid} ellipsoid Ellipsoid for projecting and generating local vectors.\n * @param {Rectangle} boundingRectangle Bounding rectangle around the positions.\n * @returns {Number[]} An array of 6 numbers specifying [minimum point, u extent, v extent] as points in the \"cartographic\" system.\n * @private\n */\nGeometry._textureCoordinateRotationPoints = function (\n positions,\n stRotation,\n ellipsoid,\n boundingRectangle\n) {\n var i;\n\n // Create a local east-north-up coordinate system centered on the polygon's bounding rectangle.\n // Project the southwest, northwest, and southeast corners of the bounding rectangle into the plane of ENU as 2D points.\n // These are the equivalents of (0,0), (0,1), and (1,0) in the texture coordiante system computed in ShadowVolumeAppearanceFS,\n // aka \"ENU texture space.\"\n var rectangleCenter = Rectangle.center(\n boundingRectangle,\n rectangleCenterScratch\n );\n var enuCenter = Cartographic.toCartesian(\n rectangleCenter,\n ellipsoid,\n enuCenterScratch\n );\n var enuToFixedFrame = Transforms.eastNorthUpToFixedFrame(\n enuCenter,\n ellipsoid,\n fixedFrameToEnuScratch\n );\n var fixedFrameToEnu = Matrix4.inverse(\n enuToFixedFrame,\n fixedFrameToEnuScratch\n );\n\n var boundingPointsEnu = boundingRectanglePointsEnuScratch;\n var boundingPointsCarto = boundingRectanglePointsCartographicScratch;\n\n boundingPointsCarto[0].longitude = boundingRectangle.west;\n boundingPointsCarto[0].latitude = boundingRectangle.south;\n\n boundingPointsCarto[1].longitude = boundingRectangle.west;\n boundingPointsCarto[1].latitude = boundingRectangle.north;\n\n boundingPointsCarto[2].longitude = boundingRectangle.east;\n boundingPointsCarto[2].latitude = boundingRectangle.south;\n\n var posEnu = pointEnuScratch;\n\n for (i = 0; i < 3; i++) {\n Cartographic.toCartesian(boundingPointsCarto[i], ellipsoid, posEnu);\n posEnu = Matrix4.multiplyByPointAsVector(fixedFrameToEnu, posEnu, posEnu);\n boundingPointsEnu[i].x = posEnu.x;\n boundingPointsEnu[i].y = posEnu.y;\n }\n\n // Rotate each point in the polygon around the up vector in the ENU by -stRotation and project into ENU as 2D.\n // Compute the bounding box of these rotated points in the 2D ENU plane.\n // Rotate the corners back by stRotation, then compute their equivalents in the ENU texture space using the corners computed earlier.\n var rotation = Quaternion.fromAxisAngle(\n Cartesian3.UNIT_Z,\n -stRotation,\n enuRotationScratch\n );\n var textureMatrix = Matrix3.fromQuaternion(\n rotation,\n enuRotationMatrixScratch\n );\n\n var positionsLength = positions.length;\n var enuMinX = Number.POSITIVE_INFINITY;\n var enuMinY = Number.POSITIVE_INFINITY;\n var enuMaxX = Number.NEGATIVE_INFINITY;\n var enuMaxY = Number.NEGATIVE_INFINITY;\n for (i = 0; i < positionsLength; i++) {\n posEnu = Matrix4.multiplyByPointAsVector(\n fixedFrameToEnu,\n positions[i],\n posEnu\n );\n posEnu = Matrix3.multiplyByVector(textureMatrix, posEnu, posEnu);\n\n enuMinX = Math.min(enuMinX, posEnu.x);\n enuMinY = Math.min(enuMinY, posEnu.y);\n enuMaxX = Math.max(enuMaxX, posEnu.x);\n enuMaxY = Math.max(enuMaxY, posEnu.y);\n }\n\n var toDesiredInComputed = Matrix2.fromRotation(stRotation, rotation2DScratch);\n\n var points2D = points2DScratch;\n points2D[0].x = enuMinX;\n points2D[0].y = enuMinY;\n\n points2D[1].x = enuMinX;\n points2D[1].y = enuMaxY;\n\n points2D[2].x = enuMaxX;\n points2D[2].y = enuMinY;\n\n var boundingEnuMin = boundingPointsEnu[0];\n var boundingPointsWidth = boundingPointsEnu[2].x - boundingEnuMin.x;\n var boundingPointsHeight = boundingPointsEnu[1].y - boundingEnuMin.y;\n\n for (i = 0; i < 3; i++) {\n var point2D = points2D[i];\n // rotate back\n Matrix2.multiplyByVector(toDesiredInComputed, point2D, point2D);\n\n // Convert point into east-north texture coordinate space\n point2D.x = (point2D.x - boundingEnuMin.x) / boundingPointsWidth;\n point2D.y = (point2D.y - boundingEnuMin.y) / boundingPointsHeight;\n }\n\n var minXYCorner = points2D[0];\n var maxYCorner = points2D[1];\n var maxXCorner = points2D[2];\n var result = new Array(6);\n Cartesian2.pack(minXYCorner, result);\n Cartesian2.pack(maxYCorner, result, 2);\n Cartesian2.pack(maxXCorner, result, 4);\n\n return result;\n};\nexport default Geometry;\n","import defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\n\n/**\n * Values and type information for geometry attributes. A {@link Geometry}\n * generally contains one or more attributes. All attributes together form\n * the geometry's vertices.\n *\n * @alias GeometryAttribute\n * @constructor\n *\n * @param {Object} [options] Object with the following properties:\n * @param {ComponentDatatype} [options.componentDatatype] The datatype of each component in the attribute, e.g., individual elements in values.\n * @param {Number} [options.componentsPerAttribute] A number between 1 and 4 that defines the number of components in an attributes.\n * @param {Boolean} [options.normalize=false] When <code>true</code> and <code>componentDatatype</code> is an integer format, indicate that the components should be mapped to the range [0, 1] (unsigned) or [-1, 1] (signed) when they are accessed as floating-point for rendering.\n * @param {number[]|Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|Float64Array} [options.values] The values for the attributes stored in a typed array.\n *\n * @exception {DeveloperError} options.componentsPerAttribute must be between 1 and 4.\n *\n *\n * @example\n * var geometry = new Cesium.Geometry({\n * attributes : {\n * position : new Cesium.GeometryAttribute({\n * componentDatatype : Cesium.ComponentDatatype.FLOAT,\n * componentsPerAttribute : 3,\n * values : new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ])\n * })\n * },\n * primitiveType : Cesium.PrimitiveType.LINE_LOOP\n * });\n *\n * @see Geometry\n */\nfunction GeometryAttribute(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n //>>includeStart('debug', pragmas.debug);\n if (!defined(options.componentDatatype)) {\n throw new DeveloperError(\"options.componentDatatype is required.\");\n }\n if (!defined(options.componentsPerAttribute)) {\n throw new DeveloperError(\"options.componentsPerAttribute is required.\");\n }\n if (\n options.componentsPerAttribute < 1 ||\n options.componentsPerAttribute > 4\n ) {\n throw new DeveloperError(\n \"options.componentsPerAttribute must be between 1 and 4.\"\n );\n }\n if (!defined(options.values)) {\n throw new DeveloperError(\"options.values is required.\");\n }\n //>>includeEnd('debug');\n\n /**\n * The datatype of each component in the attribute, e.g., individual elements in\n * {@link GeometryAttribute#values}.\n *\n * @type ComponentDatatype\n *\n * @default undefined\n */\n this.componentDatatype = options.componentDatatype;\n\n /**\n * A number between 1 and 4 that defines the number of components in an attributes.\n * For example, a position attribute with x, y, and z components would have 3 as\n * shown in the code example.\n *\n * @type Number\n *\n * @default undefined\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.FLOAT;\n * attribute.componentsPerAttribute = 3;\n * attribute.values = new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n */\n this.componentsPerAttribute = options.componentsPerAttribute;\n\n /**\n * When <code>true</code> and <code>componentDatatype</code> is an integer format,\n * indicate that the components should be mapped to the range [0, 1] (unsigned)\n * or [-1, 1] (signed) when they are accessed as floating-point for rendering.\n * <p>\n * This is commonly used when storing colors using {@link ComponentDatatype.UNSIGNED_BYTE}.\n * </p>\n *\n * @type Boolean\n *\n * @default false\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.UNSIGNED_BYTE;\n * attribute.componentsPerAttribute = 4;\n * attribute.normalize = true;\n * attribute.values = new Uint8Array([\n * Cesium.Color.floatToByte(color.red),\n * Cesium.Color.floatToByte(color.green),\n * Cesium.Color.floatToByte(color.blue),\n * Cesium.Color.floatToByte(color.alpha)\n * ]);\n */\n this.normalize = defaultValue(options.normalize, false);\n\n /**\n * The values for the attributes stored in a typed array. In the code example,\n * every three elements in <code>values</code> defines one attributes since\n * <code>componentsPerAttribute</code> is 3.\n *\n * @type {number[]|Int8Array|Uint8Array|Int16Array|Uint16Array|Int32Array|Uint32Array|Float32Array|Float64Array}\n *\n * @default undefined\n *\n * @example\n * attribute.componentDatatype = Cesium.ComponentDatatype.FLOAT;\n * attribute.componentsPerAttribute = 3;\n * attribute.values = new Float32Array([\n * 0.0, 0.0, 0.0,\n * 7500000.0, 0.0, 0.0,\n * 0.0, 7500000.0, 0.0\n * ]);\n */\n this.values = options.values;\n}\nexport default GeometryAttribute;\n"],"names":["defaultValue","Check","defined","Cartesian2","WebGLConstants","PrimitiveType","GeometryType","DeveloperError","Cartographic","Cartesian3","Matrix4","Quaternion","Rectangle","Transforms","Matrix3"],"mappings":"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IAAI,aAAa,KAAK,aAAa,CAAC,UAAU;EAC9C,IAAI,aAAa,KAAK,aAAa,CAAC,SAAS;EAC7C,IAAI,aAAa,KAAK,aAAa,CAAC,cAAc;EAClD,IAAI,aAAa,KAAK,aAAa,CAAC,YAAY;EAChD,IAAI;EACJ,CAAC,CAAC;AACF;AACA,wBAAe,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;ECpE3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE;EAC3B,EAAE,OAAO,GAAGJ,iBAAY,CAAC,OAAO,EAAEA,iBAAY,CAAC,YAAY,CAAC,CAAC;AAC7D;EACA;EACA,EAAEC,WAAK,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;EAChE;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,CAAC,aAAa,GAAGD,iBAAY;EACnC,IAAI,OAAO,CAAC,aAAa;EACzB,IAAIK,eAAa,CAAC,SAAS;EAC3B,GAAG,CAAC;AACJ;EACA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"}
|