GeometryInstanceAttribute

GeometryInstanceAttribute

new

Values and type information for per-instance geometry attributes.

Parameters:
Name Type Argument Default Description
options.componentDatatype ComponentDatatype <optional>
undefined The datatype of each component in the attribute, e.g., individual elements in values.
options.componentsPerAttribute Number <optional>
undefined A number between 1 and 4 that defines the number of components in an attributes.
options.normalize Boolean <optional>
false 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.
options.value Array <optional>
undefined The value for the attribute.
Throws:
Example
var instance = new GeometryInstance({
  geometry : new BoxGeometry({
    dimensions : new Cartesian3(1000000.0, 1000000.0, 500000.0)
  }),
  modelMatrix : Matrix4.multiplyByTranslation(Transforms.eastNorthUpToFixedFrame(
    ellipsoid.cartographicToCartesian(Cartographic.fromDegrees(-0.0, 0.0))), new Cartesian3(0.0, 0.0, 1000000.0)),
  id : 'box',
  attributes : {
      color : new GeometryInstanceAttribute({
        componentDatatype : ComponentDatatype.UNSIGNED_BYTE,
        componentsPerAttribute : 4,
        normalize : true,
        value : [255, 255, 0 255]
      }
  }
});
See:
Source:

Members

:ComponentDatatype

The datatype of each component in the attribute, e.g., individual elements in {@see GeometryInstanceAttribute#value}.
Default Value:
  • undefined

: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.
Example
show : new GeometryInstanceAttribute({
  componentDatatype : ComponentDatatype.UNSIGNED_BYTE,
  componentsPerAttribute : 1,
  normalize : true,
  value : 1.0
}
Default Value:
  • undefined

: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}.

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

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.
Example
show : new GeometryInstanceAttribute({
  componentDatatype : ComponentDatatype.UNSIGNED_BYTE,
  componentsPerAttribute : 1,
  normalize : true,
  value : [1.0]
}
Default Value:
  • undefined