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.
In low-level rendering code, a vertex array can be created from a geometry using Context#createVertexArrayFromGeometry.
Geometries can be transformed and optimized using functions in GeometryPipeline.
Parameters:
| Name | Type | Argument | Description | 
|---|---|---|---|
options.attributes | 
            
            
            GeometryAttributes | Attributes, which make up the geometry's vertices. | |
options.primitiveType | 
            
            
            PrimitiveType | The type of primitives in the geometry. | |
options.indices | 
            
            
            Array | 
                
                    <optional> | 
            
            
            
            
            Optional index data that determines the primitives in the geometry. | 
options.boundingSphere | 
            
            
            BoundingSphere | 
                
                    <optional> | 
            
            
            
            
            An optional bounding sphere that fully enclosed the geometry. | 
Throws:
- 
DeveloperError : options.attributes is required.
 - 
DeveloperError : options.primitiveType is required.
 
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 Geometry({
  attributes : {
    position : new GeometryAttribute({
      componentDatatype : ComponentDatatype.DOUBLE,
      componentsPerAttribute : 3,
      values : positions
    })
  },
  indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
  primitiveType : PrimitiveType.LINES,
  boundingSphere : BoundingSphere.fromVertices(positions)
});
    
	
	
	
	
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. When geometry is prepared for rendering with Context#createVertexArrayFromGeometry, attributes are generally written interleaved into the vertex buffer for better rendering performance.
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. See VertexFormat#position.normal- Normal (normalized), commonly used for lighting. 32-bit floating-point. 3 components per attribute. See VertexFormat#normal.st- 2D texture coordinate. 32-bit floating-point. 2 components per attribute. See VertexFormat#st.binormal- Binormal (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See VertexFormat#binormal.tangent- Tangent (normalized), used for tangent-space effects like bump mapping. 32-bit floating-point. 3 components per attribute. See VertexFormat#tangent.
The following attribute names are generally not created by a Geometry, but are added to a Geometry by a Primitive or GeometryPipeline functions to prepare the geometry for rendering.
position3DHigh- High 32 bits for encoded 64-bit position computed with GeometryPipeline.encodeAttribute. 32-bit floating-point. 4 components per attribute.position3DLow- Low 32 bits for encoded 64-bit position computed with GeometryPipeline.encodeAttribute. 32-bit floating-point. 4 components per attribute.position3DHigh- High 32 bits for encoded 64-bit 2D (Columbus view) position computed with GeometryPipeline.encodeAttribute. 32-bit floating-point. 4 components per attribute.position2DLow- Low 32 bits for encoded 64-bit 2D (Columbus view) position computed with GeometryPipeline.encodeAttribute. 32-bit floating-point. 4 components per attribute.color- RGBA color (normalized) usually from GeometryInstance#color. 32-bit floating-point. 4 components per attribute.pickColor- RGBA color used for picking, created from Context#createPickId. 32-bit floating-point. 4 components per attribute.
Example
geometry.attributes.position = new GeometryAttribute({ componentDatatype : ComponentDatatype.FLOAT, componentsPerAttribute : 3, values : new Float32Array() });- Default Value:
 - undefined
 
See:
 - 
    
boundingSphere :BoundingSphere
 - 
    
    An optional bounding sphere that fully encloses the geometry. This is commonly used for culling.
- Default Value:
 - undefined
 
 - 
    
indices :Array
 - 
    
    Optional index data that - along with Geometry#primitiveType - determines the primitives in the geometry.
- Default Value:
 - undefined
 
 - 
    
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
 
 
Methods
- 
    
<static> computeNumberOfVertices
 - 
    
    
    
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.
Parameters:
Name Type Description geometryCartesian3 The geometry. Throws:
DeveloperError : geometries is required.Returns:
Number The number of vertices in the geometry.Example
var numVertices = Geometry.computeNumberOfVertices(geometry);
 
