Geometry

new LSGlobe.Geometry (options)

具有形成顶点和可选索引数据的属性的几何图形表示定义原语。几何图形和 外观 (用于描述阴影),可以分配给 Primitive 进行可视化。 Primitive 可以由许多不同的几何形状(在许多情况下)创建,以提高性能。

可以使用 GeometryPipeline 中的函数来转换和优化几何。

Name Type Description
options Object 具有以下属性的对象:
名称 类型 默认 说明
属性 GeometryAttributes 组成几何顶点的属性。
primitiveType PrimitiveType PrimitiveType.TRIANGLES 可选 几何中的图元类型。
索引 Uint16Array | Uint32Array 可选 确定几何体中基本体的可选索引数据。
boundingSphere BoundingSphere 可选 一个可选的包围球,完全包围了几何。
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 LSGlobe.Geometry({
  attributes : {
    position : new LSGlobe.GeometryAttribute({
      componentDatatype : LSGlobe.ComponentDatatype.DOUBLE,
      componentsPerAttribute : 3,
      values : positions
    })
  },
  indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
  primitiveType : LSGlobe.PrimitiveType.LINES,
  boundingSphere : LSGlobe.BoundingSphere.fromVertices(positions)
});
Demo:
See:

Members

组成几何顶点的属性。此对象中的每个属性都对应一个 GeometryAttribute 包含属性的数据。

属性始终以非交织方式存储在Geometry中。

保留具有众所周知语义的属性名称。以下属性由Geometry创建(取决于提供的 VertexFormat

  • position -3D顶点位置。 64位浮点(用于精度)。每个属性3个组件。请参见 VertexFormat#position
  • normal -正常(标准化),通常用于照明。 32位浮点。每个属性3个组件。请参见 VertexFormat#normal
  • st -2D纹理坐标。 32位浮点。每个属性2个组件。请参见 VertexFormat#st
  • bitangent -Bitangent(规范化),用于切线空间效果(如凹凸贴图)。 32位浮点。每个属性3个组件。请参见 VertexFormat#bitangent
  • tangent -切线(规范化),用于切线空间效果(如凹凸贴图)。 32位浮点。每个属性3个组件。请参见 VertexFormat#tangent

以下属性名称通常不是由Geometry创建的,而是添加的通过 Primitive GeometryPipeline 准备功能用于渲染的几何。

  • position3DHigh -使用 GeometryPipeline.encodeAttribute 计算得到的64位位置的高32位。 32位浮点。每个属性4个组成部分。
  • position3DLow -使用 GeometryPipeline.encodeAttribute 计算得出的64位低32位。 32位浮点。每个属性4个组成部分。
  • position3DHigh -使用 GeometryPipeline.encodeAttribute 。 32位浮点。每个属性4个组成部分。
  • position2DLow -使用 GeometryPipeline.encodeAttribute 。 32位浮点。每个属性4个组成部分。
  • color -通常来自 GeometryInstance#color 的RGBA颜色(规范化)。 32位浮点。每个属性4个组成部分。
  • pickColor -用于拾取的RGBA颜色。 32位浮点。每个属性4个组成部分。
Default Value: undefined
Example:
geometry.attributes.position = new LSGlobe.GeometryAttribute({
  componentDatatype : LSGlobe.ComponentDatatype.FLOAT,
  componentsPerAttribute : 3,
  values : new Float32Array(0)
});
See:
可选的包围球,完全包围了几何。这是通常用于淘汰。
Default Value: undefined
可选的索引数据-与 Geometry#primitiveType 一起-确定几何体中的图元。
Default Value: undefined
几何体中图元的类型。这通常是 PrimitiveType.TRIANGLES ,但可以根据特定的几何形状而变化。
Default Value: undefined

Methods

static LSGlobe.Geometry.computeNumberOfVertices (geometry) Number

计算几何中的顶点数。运行时间与相对于顶点中的属性数量,而不是顶点数量。
Name Type Description
geometry Geometry 几何。
Returns:
几何中的顶点数。
Example:
var numVertices = LSGlobe.Geometry.computeNumberOfVertices(geometry);