GeometryInstanceAttribute

new Cesium.GeometryInstanceAttribute(options)

Values and type information for per-instance geometry attributes.
参数名称 类型 描述信息
options object Object with the following properties:
参数名称 类型 默认值 描述信息
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 可选 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.
使用示例:
const instance = new Cesium.GeometryInstance({
  geometry : Cesium.BoxGeometry.fromDimensions({
    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.Matrix4()),
  id : 'box',
  attributes : {
    color : new Cesium.GeometryInstanceAttribute({
      componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
      componentsPerAttribute : 4,
      normalize : true,
      value : [255, 255, 0, 255]
    })
  }
});
参考:

成员(属性)

The datatype of each component in the attribute, e.g., individual elements in GeometryInstanceAttribute#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.
默认值: undefined
使用示例:
show : new Cesium.GeometryInstanceAttribute({
  componentDatatype : Cesium.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.

默认值: false
使用示例:
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)
];
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.
默认值: undefined
使用示例:
show : new Cesium.GeometryInstanceAttribute({
  componentDatatype : Cesium.ComponentDatatype.UNSIGNED_BYTE,
  componentsPerAttribute : 1,
  normalize : true,
  value : [1.0]
})