GeometryInstanceAttribute - Cesium Documentation

# GeometryInstanceAttribute

#### new GeometryInstanceAttribute(options)

  Values and type information for per-instance geometry attributes.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `componentDatatype` | ComponentDatatype |  | optional The datatype of each component in the attribute, e.g., individual elements in values.
  `componentsPerAttribute` | Number |  | optional A number between 1 and 4 that defines the number of components in an attributes.
  `normalize` | Boolean | `false` | optional When `true` and `componentDatatype` 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.
  `value` | Array.<Number> |  | optional The value for the attribute.

  ##### Throws:

  - DeveloperError : options.componentsPerAttribute must be between 1 and 4.

  ##### Example:

      var instance = new Cesium.GeometryInstance({
        geometry : new Cesium.BoxGeometry({
          dimensions : new Cesium.Cartesian3(1000000.0, 1000000.0, 500000.0)
        }),
        modelMatrix : Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
          Cesium.Cartesian3.fromDegrees(0.0, 0.0)), new Cesium.Cartesian3(0.0, 0.0, 1000000.0), new Cesium.Matrxi4()),
        id : 'box',
        attributes : {
          color : new Cesium.GeometryInstanceAttribute({
            componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
            componentsPerAttribute : 4,
            normalize : true,
            value : [255, 255, 0 255]
          }
        }
      });

  ##### See:

  - ColorGeometryInstanceAttribute
  - ShowGeometryInstanceAttribute
  Source: Core/GeometryInstanceAttribute.js, line 47

### Members

#### componentDatatype :ComponentDatatype

  The datatype of each component in the attribute, e.g., individual elements in `GeometryInstanceAttribute#value`.
  Default Value: `undefined`
  Source: Core/GeometryInstanceAttribute.js, line 73

#### componentsPerAttribute :Number

  A number between 1 and 4 that defines the number of components in an attributes. For example, a position attribute with x, y, and z components would have 3 as shown in the code example.
  Default Value: `undefined`

  ##### Example:

      show : new Cesium.GeometryInstanceAttribute({
        componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
        componentsPerAttribute : 1,
        normalize : true,
        value : 1.0
      }

  Source: Core/GeometryInstanceAttribute.js, line 92

#### normalize :Boolean

  When `true` and `componentDatatype` 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.

  This is commonly used when storing colors using `ComponentDatatype.UNSIGNED_BYTE`.

  Default Value: `false`

  ##### Example:

      attribute.componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
      attribute.componentsPerAttribute : 4,
      attribute.normalize = true;
      attribute.value = [
        Cesium.Color.floatToByte(color.red)
        Cesium.Color.floatToByte(color.green)
        Cesium.Color.floatToByte(color.blue)
        Cesium.Color.floatToByte(color.alpha)
      ];

  Source: Core/GeometryInstanceAttribute.js, line 117

#### value

  The values for the attributes stored in a typed array. In the code example, every three elements in `values` defines one attributes since `componentsPerAttribute` is 3.
  Default Value: `undefined`

  ##### Example:

      show : new Cesium.GeometryInstanceAttribute({
        componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
        componentsPerAttribute : 1,
        normalize : true,
        value : [1.0]
      }

  Source: Core/GeometryInstanceAttribute.js, line 134