new GeometryInstance
Geometry instancing allows one Geometry object to be positions in several
different locations and colored uniquely. For example, one BoxGeometry can
be instanced several times, each with a different modelMatrix
to change
its position, rotation, and scale.
Parameters:
Name | Type | Argument | Default | Description |
---|---|---|---|---|
options.geometry |
Geometry | The geometry to instance. | ||
options.modelMatrix |
Matrix4 |
<optional> |
Matrix4.IDENTITY | The model matrix that transforms to transform the geometry from model to world coordinates. |
options.id |
Object |
<optional> |
undefined | A user-defined object to return when the instance is picked with Context#pick or get/set per-instance attributes with Primitive#getGeometryInstanceAttributes. |
options.attributes |
Object |
<optional> |
Per-instance attributes like a show or color attribute shown in the example below. |
Throws:
DeveloperError
: options.geometry is required.
Example
// Create geometry for a box, and two instances that refer to it. // One instance positions the box on the bottom and colored aqua. // The other instance positions the box on the top and color white. var geometry = new BoxGeometry({ vertexFormat : VertexFormat.POSITION_AND_NORMAL, dimensions : new Cartesian3(1000000.0, 1000000.0, 500000.0) }), var instanceBottom = new GeometryInstance({ geometry : geometry, modelMatrix : Matrix4.multiplyByTranslation(Transforms.eastNorthUpToFixedFrame( ellipsoid.cartographicToCartesian(Cartographic.fromDegrees(-75.59777, 40.03883))), new Cartesian3(0.0, 0.0, 1000000.0)), attributes : { color : new ColorGeometryInstanceAttribute(Color.AQUA) } id : 'bottom' }); var instanceTop = new GeometryInstance({ geometry : geometry, modelMatrix : Matrix4.multiplyByTranslation(Transforms.eastNorthUpToFixedFrame( ellipsoid.cartographicToCartesian(Cartographic.fromDegrees(-75.59777, 40.03883))), new Cartesian3(0.0, 0.0, 3000000.0)), attributes : { color : new ColorGeometryInstanceAttribute(Color.AQUA) } id : 'top' });
See:
Source:
Members
-
attributes :Object
-
Per-instance attributes like ColorGeometryInstanceAttribute or ShowGeometryInstanceAttribute. Geometry attributes varying per vertex; these attributes are constant for the entire instance.
- Default Value:
- undefined
-
geometry :Geometry
-
The geometry being instanced.
- Default Value:
- undefined
-
id :Object
-
User-defined object returned when the instance is picked or used to get/set per-instance attributes.
- Default Value:
- undefined
- Context#pick
- Primitive#getGeometryInstanceAttributes
See:
-
modelMatrix :Matrix4
-
The 4x4 transformation matrix that transforms the geometry from model to world coordinates. When this is the identity matrix, the geometry is drawn in world coordinates, i.e., Earth's WGS84 coordinates. Local reference frames can be used by providing a different transformation matrix, like that returned by Transforms.eastNorthUpToFixedFrame.
- Default Value:
- Matrix4.IDENTITY