new Geometry()
A geometry representation with attributes forming vertices and optional index data
defining primitives. Geometries and an
Appearance
, which describes the shading,
can be assigned to a Primitive
for visualization. A Primitive
can
be created from many heterogeneous - in many cases - geometries for performance.
Geometries can be transformed and optimized using functions in GeometryPipeline
.
Name | Type | Description |
---|---|---|
options.attributes |
GeometryAttributes | Attributes, which make up the geometry's vertices. |
options.primitiveType |
PrimitiveType | The type of primitives in the geometry. |
options.indices |
Uint16Array | Uint32Array | optional Optional index data that determines the primitives in the geometry. |
options.boundingSphere |
BoundingSphere | optional An optional bounding sphere that fully enclosed the geometry. |
- PolygonGeometry
- RectangleGeometry
- EllipseGeometry
- CircleGeometry
- WallGeometry
- SimplePolylineGeometry
- BoxGeometry
- EllipsoidGeometry
Example:
// Create geometry with a position attribute and indexed lines.
var positions = new Float64Array([
0.0, 0.0, 0.0,
7500000.0, 0.0, 0.0,
0.0, 7500000.0, 0.0
]);
var geometry = new Cesium.Geometry({
attributes : {
position : new Cesium.GeometryAttribute({
componentDatatype : Cesium.ComponentDatatype.DOUBLE,
componentsPerAttribute : 3,
values : positions
})
},
indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
primitiveType : Cesium.PrimitiveType.LINES,
boundingSphere : Cesium.BoundingSphere.fromVertices(positions)
});
Demo:
See:
Source:
Core/Geometry.js, line 62
Members
-
attributes :GeometryAttributes
-
Attributes, which make up the geometry's vertices. Each property in this object corresponds to a
GeometryAttribute
containing the attribute's data.Attributes are always stored non-interleaved in a Geometry.
There are reserved attribute names with well-known semantics. The following attributes are created by a Geometry (depending on the provided
VertexFormat
.position
- 3D vertex position. 64-bit floating-point (for precision). 3 components per attribute. SeeVertexFormat#position
.normal
- Normal (normalized), commonly used for lighting. 32-bit floating-point. 3 components per attribute. SeeVertexFormat#normal
.st
- 2D texture coordinate. 32-bit floating-point. 2 components per attribute. SeeVertexFormat#st
.binormal
- Binormal (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. SeeVertexFormat#binormal
.tangent
- Tangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. SeeVertexFormat#tangent
.
The following attribute names are generally not created by a Geometry, but are added to a Geometry by a
Primitive
orGeometryPipeline
functions to prepare the geometry for rendering.position3DHigh
- High 32 bits for encoded 64-bit position computed withGeometryPipeline.encodeAttribute
. 32-bit floating-point. 4 components per attribute.position3DLow
- Low 32 bits for encoded 64-bit position computed withGeometryPipeline.encodeAttribute
. 32-bit floating-point. 4 components per attribute.position3DHigh
- High 32 bits for encoded 64-bit 2D (Columbus view) position computed withGeometryPipeline.encodeAttribute
. 32-bit floating-point. 4 components per attribute.position2DLow
- Low 32 bits for encoded 64-bit 2D (Columbus view) position computed withGeometryPipeline.encodeAttribute
. 32-bit floating-point. 4 components per attribute.color
- RGBA color (normalized) usually fromGeometryInstance#color
. 32-bit floating-point. 4 components per attribute.pickColor
- RGBA color used for picking. 32-bit floating-point. 4 components per attribute.
-
Default Value:
undefined
Example:
geometry.attributes.position = new Cesium.GeometryAttribute({ componentDatatype : Cesium.ComponentDatatype.FLOAT, componentsPerAttribute : 3, values : new Float32Array() });
See:
Source: Core/Geometry.js, line 119 -
boundingSphere :BoundingSphere
-
An optional bounding sphere that fully encloses the geometry. This is commonly used for culling.
-
Default Value:
undefined
Source: Core/Geometry.js, line 149 -
indices :Array
-
Optional index data that - along with
Geometry#primitiveType
- determines the primitives in the geometry.-
Default Value:
undefined
Source: Core/Geometry.js, line 129 -
primitiveType :PrimitiveType
-
The type of primitives in the geometry. This is most often
PrimitiveType.TRIANGLES
, but can varying based on the specific geometry.-
Default Value:
undefined
Source: Core/Geometry.js, line 139
Methods
-
staticGeometry.computeNumberOfVertices(geometry) → Number
-
Computes the number of vertices in a geometry. The runtime is linear with respect to the number of attributes in a vertex, not the number of vertices.
Name Type Description geometry
Cartesian3 The geometry. Returns:
The number of vertices in the geometry.Example:
var numVertices = Cesium.Geometry.computeNumberOfVertices(geometry);
Source: Core/Geometry.js, line 165