VertexFormat - Cesium Documentation

# VertexFormat

#### new VertexFormat(options)

  A vertex format defines what attributes make up a vertex. A VertexFormat can be provided to a `Geometry` to request that certain properties be computed, e.g., just position, position and normal, etc.

  Name | Type | Description
  --- | --- | ---
  `options` | Object | optional An object with boolean properties corresponding to VertexFormat properties as shown in the code example.

  ##### Example:

      // Create a vertex format with position and 2D texture coordinate attributes.
      var format = new Cesium.VertexFormat({
        position : true,
        st : true
      });

  ##### See:

  - Geometry#attributes
  - Packable
  Source: Core/VertexFormat.js, line 34

### Members

#### staticconstantVertexFormat.ALL :VertexFormat

  An immutable vertex format with well-known attributes: position, normal, st, binormal, and tangent.

  ##### See:

  - VertexFormat#position
  - VertexFormat#normal
  - VertexFormat#st
  - VertexFormat#binormal
  - VertexFormat#tangent
  Source: Core/VertexFormat.js, line 196

#### staticconstantVertexFormat.DEFAULT :VertexFormat

  An immutable vertex format with position, normal, and st attributes. This is compatible with most appearances and materials; however normal and st attributes are not always required. When this is known in advance, another `VertexFormat` should be used.

  ##### See:

  - VertexFormat#position
  - VertexFormat#normal
  Source: Core/VertexFormat.js, line 216

#### staticVertexFormat.packedLength :Number

  The number of elements used to pack the object into an array.
  Source: Core/VertexFormat.js, line 222

#### staticconstantVertexFormat.POSITION_AND_COLOR :VertexFormat

  An immutable vertex format with position and color attributes.

  ##### See:

  - VertexFormat#position
  - VertexFormat#color
  Source: Core/VertexFormat.js, line 179

#### staticconstantVertexFormat.POSITION_AND_NORMAL :VertexFormat

  An immutable vertex format with position and normal attributes. This is compatible with per-instance color appearances like `PerInstanceColorAppearance`.

  ##### See:

  - VertexFormat#position
  - VertexFormat#normal
  Source: Core/VertexFormat.js, line 132

#### staticconstantVertexFormat.POSITION_AND_ST :VertexFormat

  An immutable vertex format with position and st attributes. This is compatible with `EllipsoidSurfaceAppearance`.

  ##### See:

  - VertexFormat#position
  - VertexFormat#st
  Source: Core/VertexFormat.js, line 165

#### staticconstantVertexFormat.POSITION_NORMAL_AND_ST :VertexFormat

  An immutable vertex format with position, normal, and st attributes. This is compatible with `MaterialAppearance` when `MaterialAppearance#materialSupport` is `TEXTURED/code>.`

  ##### See:

  - VertexFormat#position
  - VertexFormat#normal
  - VertexFormat#st
  Source: Core/VertexFormat.js, line 149

#### staticconstantVertexFormat.POSITION_ONLY :VertexFormat

  An immutable vertex format with only a position attribute.

  ##### See:

  - VertexFormat#position
  Source: Core/VertexFormat.js, line 118

#### binormal :Boolean

  When `true`, the vertex has a binormal attribute (normalized), which is used for tangent-space effects like bump mapping.

  32-bit floating-point. 3 components per attribute.

  Default Value: `false`
  Source: Core/VertexFormat.js, line 83

#### color :Boolean

  When `true`, the vertex has an RGB color attribute.

  8-bit unsigned byte. 3 components per attribute.

  Default Value: `false`
  Source: Core/VertexFormat.js, line 107

#### normal :Boolean

  When `true`, the vertex has a normal attribute (normalized), which is commonly used for lighting.

  32-bit floating-point. 3 components per attribute.

  Default Value: `false`
  Source: Core/VertexFormat.js, line 59

#### position :Boolean

  When `true`, the vertex has a 3D position attribute.

  64-bit floating-point (for precision). 3 components per attribute.

  Default Value: `false`
  Source: Core/VertexFormat.js, line 47

#### st :Boolean

  When `true`, the vertex has a 2D texture coordinate attribute.

  32-bit floating-point. 2 components per attribute

  Default Value: `false`
  Source: Core/VertexFormat.js, line 71

#### tangent :Boolean

  When `true`, the vertex has a tangent attribute (normalized), which is used for tangent-space effects like bump mapping.

  32-bit floating-point. 3 components per attribute.

  Default Value: `false`
  Source: Core/VertexFormat.js, line 95

### Methods

#### staticVertexFormat.clone(cartesian, result) → VertexFormat

  Duplicates a VertexFormat instance.

  Name | Type | Description
  --- | --- | ---
  `cartesian` | VertexFormat | The vertex format to duplicate.
  `result` | VertexFormat | optional The object onto which to store the result.

  ##### Returns:

  The modified result parameter or a new VertexFormat instance if one was not provided. (Returns undefined if vertexFormat is undefined)
  Source: Core/VertexFormat.js, line 288

#### staticVertexFormat.pack(value, array, startingIndex)

  Stores the provided instance into the provided array.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `value` | Object |  | The value to pack.
  `array` | Array.<Number> |  | The array to pack into.
  `startingIndex` | Number | `0` | optional The index into the array at which to start packing the elements.

  Source: Core/VertexFormat.js, line 232

#### staticVertexFormat.unpack(array, startingIndex, result)

  Retrieves an instance from a packed array.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `array` | Array.<Number> |  | The packed array.
  `startingIndex` | Number | `0` | optional The starting index of the element to be unpacked.
  `result` | VertexFormat |  | optional The object into which to store the result.

  Source: Core/VertexFormat.js, line 259