# IndexDatatype

#### IndexDatatype()
Core/IndexDatatype.js 22

  Constants for WebGL index datatypes. These corresponds to the `type` parameter of drawElements.

### Members

#### staticconstantCesium.IndexDatatype.UNSIGNED_BYTE : Number
Core/IndexDatatype.js 30

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

#### staticconstantCesium.IndexDatatype.UNSIGNED_INT : Number
Core/IndexDatatype.js 48

  32-bit unsigned int corresponding to `UNSIGNED_INT` and the type of an element in `Uint32Array`.

#### staticconstantCesium.IndexDatatype.UNSIGNED_SHORT : Number
Core/IndexDatatype.js 39

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

### Methods

#### staticCesium.IndexDatatype.createTypedArray(numberOfVertices, indicesLengthOrArray) → Uint16Array|Uint32Array
Core/IndexDatatype.js 105

  Creates a typed array that will store indices, using either `<Uint16Array` or `Uint32Array` depending on the number of vertices.

  Name | Type | Description
  --- | --- | ---
  `numberOfVertices` | Number | Number of vertices that the indices will reference.
  `indicesLengthOrArray` | Any | Passed through to the typed array constructor.

  ##### Returns:

  A `Uint16Array` or `Uint32Array` constructed with `indicesLengthOrArray`.

  ##### Example:

      this.indices = Cesium.IndexDatatype.createTypedArray(positions.length / 3, numberOfIndices);

#### staticCesium.IndexDatatype.createTypedArrayFromArrayBuffer(numberOfVertices, sourceArray, byteOffset, length) → Uint16Array|Uint32Array
Core/IndexDatatype.js 130

  Creates a typed array from a source array buffer. The resulting typed array will store indices, using either `<Uint16Array` or `Uint32Array` depending on the number of vertices.

  Name | Type | Description
  --- | --- | ---
  `numberOfVertices` | Number | Number of vertices that the indices will reference.
  `sourceArray` | ArrayBuffer | Passed through to the typed array constructor.
  `byteOffset` | Number | Passed through to the typed array constructor.
  `length` | Number | Passed through to the typed array constructor.

  ##### Returns:

  A `Uint16Array` or `Uint32Array` constructed with `sourceArray`, `byteOffset`, and `length`.

#### staticCesium.IndexDatatype.getSizeInBytes(indexDatatype) → Number
Core/IndexDatatype.js 61

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

  Name | Type | Description
  --- | --- | ---
  `indexDatatype` | IndexDatatype | The index datatype to get the size of.

  ##### Returns:

  The size in bytes.

  ##### Example:

      // Returns 2
      var size = Cesium.IndexDatatype.getSizeInBytes(Cesium.IndexDatatype.UNSIGNED_SHORT);

#### staticCesium.IndexDatatype.validate(indexDatatype) → Boolean
Core/IndexDatatype.js 87

  Validates that the provided index datatype is a valid `IndexDatatype`.

  Name | Type | Description
  --- | --- | ---
  `indexDatatype` | IndexDatatype | The index datatype to validate.

  ##### Returns:

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

  ##### Example:

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