/** * @license * Cesium - https://github.com/CesiumGS/cesium * Version 1.117 * * Copyright 2011-2022 Cesium Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Columbus View (Pat. Pend.) * * Portions licensed separately. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. */ import { WebGLConstants_default } from "./chunk-PEABJLCK.js"; import { defaultValue_default } from "./chunk-UCPPWV64.js"; import { DeveloperError_default } from "./chunk-U4IMCOF5.js"; import { defined_default } from "./chunk-BDUJXBVF.js"; // packages/engine/Source/Core/ComponentDatatype.js var ComponentDatatype = { /** * 8-bit signed byte corresponding to gl.BYTE and the type * of an element in Int8Array. * * @type {number} * @constant */ BYTE: WebGLConstants_default.BYTE, /** * 8-bit unsigned byte corresponding to UNSIGNED_BYTE and the type * of an element in Uint8Array. * * @type {number} * @constant */ UNSIGNED_BYTE: WebGLConstants_default.UNSIGNED_BYTE, /** * 16-bit signed short corresponding to SHORT and the type * of an element in Int16Array. * * @type {number} * @constant */ SHORT: WebGLConstants_default.SHORT, /** * 16-bit unsigned short corresponding to UNSIGNED_SHORT and the type * of an element in Uint16Array. * * @type {number} * @constant */ UNSIGNED_SHORT: WebGLConstants_default.UNSIGNED_SHORT, /** * 32-bit signed int corresponding to INT and the type * of an element in Int32Array. * * @memberOf ComponentDatatype * * @type {number} * @constant */ INT: WebGLConstants_default.INT, /** * 32-bit unsigned int corresponding to UNSIGNED_INT and the type * of an element in Uint32Array. * * @memberOf ComponentDatatype * * @type {number} * @constant */ UNSIGNED_INT: WebGLConstants_default.UNSIGNED_INT, /** * 32-bit floating-point corresponding to FLOAT and the type * of an element in Float32Array. * * @type {number} * @constant */ FLOAT: WebGLConstants_default.FLOAT, /** * 64-bit floating-point corresponding to gl.DOUBLE (in Desktop OpenGL; * this is not supported in WebGL, and is emulated in Cesium via {@link GeometryPipeline.encodeAttribute}) * and the type of an element in Float64Array. * * @memberOf ComponentDatatype * * @type {number} * @constant * @default 0x140A */ DOUBLE: WebGLConstants_default.DOUBLE }; ComponentDatatype.getSizeInBytes = function(componentDatatype) { if (!defined_default(componentDatatype)) { throw new DeveloperError_default("value is required."); } switch (componentDatatype) { case ComponentDatatype.BYTE: return Int8Array.BYTES_PER_ELEMENT; case ComponentDatatype.UNSIGNED_BYTE: return Uint8Array.BYTES_PER_ELEMENT; case ComponentDatatype.SHORT: return Int16Array.BYTES_PER_ELEMENT; case ComponentDatatype.UNSIGNED_SHORT: return Uint16Array.BYTES_PER_ELEMENT; case ComponentDatatype.INT: return Int32Array.BYTES_PER_ELEMENT; case ComponentDatatype.UNSIGNED_INT: return Uint32Array.BYTES_PER_ELEMENT; case ComponentDatatype.FLOAT: return Float32Array.BYTES_PER_ELEMENT; case ComponentDatatype.DOUBLE: return Float64Array.BYTES_PER_ELEMENT; default: throw new DeveloperError_default("componentDatatype is not a valid value."); } }; ComponentDatatype.fromTypedArray = function(array) { if (array instanceof Int8Array) { return ComponentDatatype.BYTE; } if (array instanceof Uint8Array) { return ComponentDatatype.UNSIGNED_BYTE; } if (array instanceof Int16Array) { return ComponentDatatype.SHORT; } if (array instanceof Uint16Array) { return ComponentDatatype.UNSIGNED_SHORT; } if (array instanceof Int32Array) { return ComponentDatatype.INT; } if (array instanceof Uint32Array) { return ComponentDatatype.UNSIGNED_INT; } if (array instanceof Float32Array) { return ComponentDatatype.FLOAT; } if (array instanceof Float64Array) { return ComponentDatatype.DOUBLE; } throw new DeveloperError_default( "array must be an Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, or Float64Array." ); }; ComponentDatatype.validate = function(componentDatatype) { return defined_default(componentDatatype) && (componentDatatype === ComponentDatatype.BYTE || componentDatatype === ComponentDatatype.UNSIGNED_BYTE || componentDatatype === ComponentDatatype.SHORT || componentDatatype === ComponentDatatype.UNSIGNED_SHORT || componentDatatype === ComponentDatatype.INT || componentDatatype === ComponentDatatype.UNSIGNED_INT || componentDatatype === ComponentDatatype.FLOAT || componentDatatype === ComponentDatatype.DOUBLE); }; ComponentDatatype.createTypedArray = function(componentDatatype, valuesOrLength) { if (!defined_default(componentDatatype)) { throw new DeveloperError_default("componentDatatype is required."); } if (!defined_default(valuesOrLength)) { throw new DeveloperError_default("valuesOrLength is required."); } switch (componentDatatype) { case ComponentDatatype.BYTE: return new Int8Array(valuesOrLength); case ComponentDatatype.UNSIGNED_BYTE: return new Uint8Array(valuesOrLength); case ComponentDatatype.SHORT: return new Int16Array(valuesOrLength); case ComponentDatatype.UNSIGNED_SHORT: return new Uint16Array(valuesOrLength); case ComponentDatatype.INT: return new Int32Array(valuesOrLength); case ComponentDatatype.UNSIGNED_INT: return new Uint32Array(valuesOrLength); case ComponentDatatype.FLOAT: return new Float32Array(valuesOrLength); case ComponentDatatype.DOUBLE: return new Float64Array(valuesOrLength); default: throw new DeveloperError_default("componentDatatype is not a valid value."); } }; ComponentDatatype.createArrayBufferView = function(componentDatatype, buffer, byteOffset, length) { if (!defined_default(componentDatatype)) { throw new DeveloperError_default("componentDatatype is required."); } if (!defined_default(buffer)) { throw new DeveloperError_default("buffer is required."); } byteOffset = defaultValue_default(byteOffset, 0); length = defaultValue_default( length, (buffer.byteLength - byteOffset) / ComponentDatatype.getSizeInBytes(componentDatatype) ); switch (componentDatatype) { case ComponentDatatype.BYTE: return new Int8Array(buffer, byteOffset, length); case ComponentDatatype.UNSIGNED_BYTE: return new Uint8Array(buffer, byteOffset, length); case ComponentDatatype.SHORT: return new Int16Array(buffer, byteOffset, length); case ComponentDatatype.UNSIGNED_SHORT: return new Uint16Array(buffer, byteOffset, length); case ComponentDatatype.INT: return new Int32Array(buffer, byteOffset, length); case ComponentDatatype.UNSIGNED_INT: return new Uint32Array(buffer, byteOffset, length); case ComponentDatatype.FLOAT: return new Float32Array(buffer, byteOffset, length); case ComponentDatatype.DOUBLE: return new Float64Array(buffer, byteOffset, length); default: throw new DeveloperError_default("componentDatatype is not a valid value."); } }; ComponentDatatype.fromName = function(name) { switch (name) { case "BYTE": return ComponentDatatype.BYTE; case "UNSIGNED_BYTE": return ComponentDatatype.UNSIGNED_BYTE; case "SHORT": return ComponentDatatype.SHORT; case "UNSIGNED_SHORT": return ComponentDatatype.UNSIGNED_SHORT; case "INT": return ComponentDatatype.INT; case "UNSIGNED_INT": return ComponentDatatype.UNSIGNED_INT; case "FLOAT": return ComponentDatatype.FLOAT; case "DOUBLE": return ComponentDatatype.DOUBLE; default: throw new DeveloperError_default("name is not a valid value."); } }; var ComponentDatatype_default = Object.freeze(ComponentDatatype); export { ComponentDatatype_default };