# ComponentDatatype

#### ComponentDatatype()
Core/ComponentDatatype.js 30

  WebGL component datatypes. Components are intrinsics, which form attributes, which form vertices.

### Members

#### static constantCesium.ComponentDatatype.DOUBLE : Number
Core/ComponentDatatype.js 87

  64-bit floating-point corresponding to `gl.DOUBLE` (in Desktop OpenGL; this is not supported in WebGL, and is emulated in Cesium via `GeometryPipeline.encodeAttribute`) and the type of an element in `Float64Array`.
  Default Value: `0x140A`

#### static constantCesium.ComponentDatatype.BYTE : Number
Core/ComponentDatatype.js 38

  8-bit signed byte corresponding to `gl.BYTE` and the type of an element in `Int8Array`.

#### static constantCesium.ComponentDatatype.FLOAT : Number
Core/ComponentDatatype.js 74

  32-bit floating-point corresponding to `FLOAT` and the type of an element in `Float32Array`.

#### static constantCesium.ComponentDatatype.SHORT : Number
Core/ComponentDatatype.js 56

  16-bit signed short corresponding to `SHORT` and the type of an element in `Int16Array`.

#### static constantCesium.ComponentDatatype.UNSIGNED_BYTE : Number
Core/ComponentDatatype.js 47

  8-bit unsigned byte corresponding to `UNSIGNED_BYTE` and the type of an element in `Uint8Array`.

#### static constantCesium.ComponentDatatype.UNSIGNED_SHORT : Number
Core/ComponentDatatype.js 65

  16-bit unsigned short corresponding to `UNSIGNED_SHORT` and the type of an element in `Uint16Array`.

### Methods

#### staticCesium.ComponentDatatype.createArrayBufferView(componentDatatype, buffer, byteOffset, length) → Int8Array|Uint8Array|Int16Array|Uint16Array|Float32Array|Float64Array
Core/ComponentDatatype.js 227

  Creates a typed view of an array of bytes.

  Name | Type | Description
  --- | --- | ---
  `componentDatatype` | ComponentDatatype | The type of the view to create.
  `buffer` | ArrayBuffer | The buffer storage to use for the view.
  `byteOffset` | Number | optional The offset, in bytes, to the first element in the view.
  `length` | Number | optional The number of elements in the view.

  ##### Returns:

  A typed array view of the buffer.

  ##### Throws:

  - DeveloperError : componentDatatype is not a valid value.

#### staticCesium.ComponentDatatype.createTypedArray(componentDatatype, valuesOrLength) → Int8Array|Uint8Array|Int16Array|Uint16Array|Float32Array|Float64Array
Core/ComponentDatatype.js 188

  Creates a typed array corresponding to component data type.

  Name | Type | Description
  --- | --- | ---
  `componentDatatype` | ComponentDatatype | The component data type.
  `valuesOrLength` | Number | Array | The length of the array to create or an array.

  ##### Returns:

  A typed array.

  ##### Throws:

  - DeveloperError : componentDatatype is not a valid value.

  ##### Example:

      // creates a Float32Array with length of 100
      var typedArray = Cesium.ComponentDatatype.createTypedArray(Cesium.ComponentDatatype.FLOAT, 100);

#### staticCesium.ComponentDatatype.fromTypedArray(array) → ComponentDatatype
Core/ComponentDatatype.js 133

  Gets the ComponentDatatype for the provided TypedArray instance.

  Name | Type | Description
  --- | --- | ---
  `array` | TypedArray | The typed array.

  ##### Returns:

  The ComponentDatatype for the provided array, or undefined if the array is not a TypedArray.

#### staticCesium.ComponentDatatype.getSizeInBytes(componentDatatype) → Number
Core/ComponentDatatype.js 102

  Returns the size, in bytes, of the corresponding datatype.

  Name | Type | Description
  --- | --- | ---
  `componentDatatype` | ComponentDatatype | The component datatype to get the size of.

  ##### Returns:

  The size in bytes.

  ##### Throws:

  - DeveloperError : componentDatatype is not a valid value.

  ##### Example:

      // Returns Int8Array.BYTES_PER_ELEMENT
      var size = Cesium.ComponentDatatype.getSizeInBytes(Cesium.ComponentDatatype.BYTE);

#### staticCesium.ComponentDatatype.validate(componentDatatype) → Boolean
Core/ComponentDatatype.js 165

  Validates that the provided component datatype is a valid `ComponentDatatype`

  Name | Type | Description
  --- | --- | ---
  `componentDatatype` | ComponentDatatype | The component datatype to validate.

  ##### Returns:

  `true` if the provided component datatype is a valid value; otherwise, `false`.

  ##### Example:

      if (!Cesium.ComponentDatatype.validate(componentDatatype)) {
        throw new Cesium.DeveloperError('componentDatatype must be a valid value.');
      }