GeometryInstanceAttribute

new LSGlobe.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 The datatype of each component in the attribute, e.g., individual elements in values.
componentsPerAttribute Number 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> The value for the attribute.
Throws:
  • DeveloperError : options.componentsPerAttribute must be between 1 and 4.
Example:
var instance = new LSGlobe.GeometryInstance({
  geometry : LSGlobe.BoxGeometry.fromDimensions({
    dimensions : new LSGlobe.Cartesian3(1000000.0, 1000000.0, 500000.0)
  }),
  modelMatrix : LSGlobe.Matrix4.multiplyByTranslation(LSGlobe.Transforms.eastNorthUpToFixedFrame(
    LSGlobe.Cartesian3.fromDegrees(0.0, 0.0)), new LSGlobe.Cartesian3(0.0, 0.0, 1000000.0), new LSGlobe.Matrix4()),
  id : 'box',
  attributes : {
    color : new LSGlobe.GeometryInstanceAttribute({
      componentDatatype : LSGlobe.ComponentDatatype.UNSIGNED_BYTE,
      componentsPerAttribute : 4,
      normalize : true,
      value : [255, 255, 0, 255]
    })
  }
});
See:

Members

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

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 LSGlobe.GeometryInstanceAttribute({
  componentDatatype : LSGlobe.ComponentDatatype.UNSIGNED_BYTE,
  componentsPerAttribute : 1,
  normalize : true,
  value : [1.0]
})
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 = LSGlobe.ComponentDatatype.UNSIGNED_BYTE;
attribute.componentsPerAttribute = 4;
attribute.normalize = true;
attribute.value = [
  LSGlobe.Color.floatToByte(color.red),
  LSGlobe.Color.floatToByte(color.green),
  LSGlobe.Color.floatToByte(color.blue),
  LSGlobe.Color.floatToByte(color.alpha)
];

value : Array.<Number>

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 LSGlobe.GeometryInstanceAttribute({
  componentDatatype : LSGlobe.ComponentDatatype.UNSIGNED_BYTE,
  componentsPerAttribute : 1,
  normalize : true,
  value : [1.0]
})