Geometry

new SuperMap3D.Geometry(options)

几何体表示法,包含顶点属性和定义基元的可选索引数据。 几何体和描述阴影的Appearance可分配给Primitive,以实现可视化。 一个基元可以由许多不同的几何体(在许多情况下)创建而成,以提高性能。 可以使用GeometryPipeline中的函数对几何体进行转换和优化。
Name Type Description
options Object 具有以下属性的对象:
Name Type Default Description
attributes GeometryAttributes optional 属性,这些属性构成了几何体的顶点。
primitiveType PrimitiveType PrimitiveType.TRIANGLES optional 几何体中基元的类型。
indices Uint16Array | Uint32Array optional 可选的索引数据,用于确定几何体中的基元。
boundingSphere BoundingSphere optional 可选的包围球,将几何体完全包围起来。
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 SuperMap3D.Geometry({
  attributes : {
    position : new SuperMap3D.GeometryAttribute({
      componentDatatype : SuperMap3D.ComponentDatatype.DOUBLE,
      componentsPerAttribute : 3,
      values : positions
    })
  },
  indices : new Uint16Array([0, 1, 1, 2, 2, 0]),
  primitiveType : SuperMap3D.PrimitiveType.LINES,
  boundingSphere : SuperMap3D.BoundingSphere.fromVertices(positions)
});
See:

Members

attributes : GeometryAttributes

属性,这些属性构成了几何体的顶点。 此对象中的每个属性都与包含属性数据的 GeometryAttribute 相对应。 属性总是以非交错的方式存储在几何体中。保留的属性名具有众所周知的语义。 以下属性是由Geometry创建的(取决于提供的VertexFormat)。
  • position - 三维顶点位置。64位浮点(用于精度)。每个属性3个组成部分。请参阅VertexFormat#position.
  • normal -(标准化),常用于光照。 32 位浮点数。每个属性3个组成部分。请参阅VertexFormat#normal.
  • st - 2D纹理坐标。32位浮点数。每个属性2个组成部分。请参阅VertexFormat#st.
  • bitangent -(标准化),用于切线空间效果,如凹凸贴图。32位浮点数。每个属性3个组成部分。请参阅VertexFormat#bitangent.
  • tangent - 切线(标准化),用于切线空间效果,如凹凸贴图。32位浮点数每个属性3个组成部分。请参阅VertexFormat#tangent.
以下属性名称通常不是由 Geometry 创建的,而是通过PrimitiveGeometryPipeline 函数添加到 Geometry 以准备几何体以进行渲染。
  • position3DHigh - 使用GeometryPipeline.encodeAttribute计算的编码64位位置的高32位。32位浮点数。每个属性4个组成部分。
  • position3DLow - 使用GeometryPipeline.encodeAttribute计算的编码64位位置的低32位。32位浮点数。每个属性4个组成部分。
  • position3DHigh - 使用GeometryPipeline.encodeAttribute计算的编码64位2D(哥伦布视图)位置的高32位。32位浮点数。每个属性4个组成部分。
  • position2DLow - 使用GeometryPipeline.encodeAttribute计算的编码64位2D(哥伦布视图)位置的低32位。32位浮点数。每个属性4个组成部分。
  • color - 通常来自GeometryInstance#color的RGBA 颜色(标准化)。 32位浮点数。每个属性4个组成部分。
  • pickColor - 用于拾取的RGBA颜色。32位浮点数。每个属性4个组成部分。
Default Value: undefined
Example:
geometry.attributes.position = new SuperMap3D.GeometryAttribute({
  componentDatatype : SuperMap3D.ComponentDatatype.FLOAT,
  componentsPerAttribute : 3,
  values : new Float32Array(0)
});
See:

boundingSphere : BoundingSphere

可选的包围球,完全包围几何体。通常用于剔除。
Default Value: undefined

indices : Array

可选索引数据-与Geometry#primitiveType一起-确定几何中的基本元素。
Default Value: undefined

primitiveType : PrimitiveType

几何体中的基元类型。 这通常是 PrimitiveType.TRIANGLES,但也会根据具体几何体的不同而变化。
Default Value: undefined

Methods

staticSuperMap3D.Geometry.computeNumberOfVertices(geometry)Number

计算几何体的顶点数。运行时间与顶点的属性数而不是顶点数呈线性关系。
Name Type Description
geometry Geometry 几何体。
Returns:
几何体的顶点数。
Example:
var numVertices = SuperMap3D.Geometry.computeNumberOfVertices(geometry);