PrimitiveCollection

new SuperMap3D.PrimitiveCollection(options)

基元集合。它通常与 Scene#primitives 一起使用,但 PrimitiveCollection 本身也是一个基元,因此可以将集合添加到集合中,形成一个层次结构。
Name Type Description
options Object optional 具有以下属性的对象:
Name Type Default Description
show Boolean true optional 确定是否显示集合中的基元。
destroyPrimitives Boolean true optional 确定是否在删除集合中的基元时将其销毁。
Example:
var billboards = new SuperMap3D.BillboardCollection();
var labels = new SuperMap3D.LabelCollection();

var collection = new SuperMap3D.PrimitiveCollection();
collection.add(billboards);

scene.primitives.add(collection);  // Add collection
scene.primitives.add(labels);      // Add regular primitive

Members

destroyPrimitives : Boolean

确定当使用 PrimitiveCollection#destroyPrimitiveCollection#remove 移除集合中的基元时,是否销毁集合中的基元,或者使用 PrimitiveCollection#removeAll 隐式移除集合中的基元。
Default Value: true
Examples:
// Example 1. Primitives are destroyed by default.
var primitives = new SuperMap3D.PrimitiveCollection();
var labels = primitives.add(new SuperMap3D.LabelCollection());
primitives = primitives.destroy();
var b = labels.isDestroyed(); // true
// Example 2. Do not destroy primitives in a collection.
var primitives = new SuperMap3D.PrimitiveCollection();
primitives.destroyPrimitives = false;
var labels = primitives.add(new SuperMap3D.LabelCollection());
primitives = primitives.destroy();
var b = labels.isDestroyed(); // false
labels = labels.destroy();    // explicitly destroy

readonlylength : Number

获取集合中基元的数量。

show : Boolean

确定是否显示该集合中的基元。
Default Value: true

Methods

add(primitive)Object

向集合中添加一个基元。
Name Type Description
primitive Object 补充的原始数据。
Returns:
添加到集合中的基元。
Throws:
Example:
var billboards = scene.primitives.add(new SuperMap3D.BillboardCollection());

contains(primitive)Boolean

确定该集合是否包含一个基元。
Name Type Description
primitive Object optional 需要检查的原始数据。
Returns:
如果基元在集合中,则为 true;如果基元未定义或在集合中找不到,则为 false。
Throws:
See:

destroy()undefined

销毁该集合中每个基元所持有的 WebGL 资源。显式销毁该集合可以确定性地释放 WebGL 资源,而不是依赖垃圾回收器来销毁该集合。

由于销毁集合会销毁所有包含的基元,因此只有在确定没有其他代码仍在使用任何包含的基元时,才能销毁集合。

一旦该集合被销毁,就不应再使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。因此,请按照示例中的方法将返回值(未定义)赋值给对象。
Returns:
Throws:
Example:
primitives = primitives && primitives.destroy();
See:

get(index)Object

返回指定索引处集合中的基元。
Name Type Description
index Number 要返回的基元的零基索引。
Returns:
位于 index 的基元。
Throws:
Example:
// Toggle the show property of every primitive in the collection.
var primitives = scene.primitives;
var length = primitives.length;
for (var i = 0; i < length; ++i) {
  var p = primitives.get(i);
  p.show = !p.show;
}
See:

isDestroyed()Boolean

如果该对象已被销毁,则返回 true;否则返回 false。

如果该对象已被销毁,则不应使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。
Returns:
如果该对象已被销毁,则为 true;否则为 false。
See:

lower(primitive)

将基元在集合中 "下移一个"。 如果集合中的所有基元都绘制在球面上,则会将原型向下移动一个。
Name Type Description
primitive Object optional 要降低的基元。
Throws:
See:

lowerToBottom(primitive)

将基元降低到集合的 "底部"。 如果集合中的所有基元都绘制在球面上,则会将该基元移动到底部。
Name Type Description
primitive Object optional 要降低到底部的基元。
Throws:
See:

raise(primitive)

将集合中的基元 "上移一级"。如果集合中的所有基元都绘制在球面上,则会将该基元向上移动一级。
Name Type Description
primitive Object optional 要引发的基元。
Throws:
See:

raiseToTop(primitive)

将基元提升到集合的 "顶部"。如果集合中的所有基元都绘制在球面上,则该图元会被移动到顶端。
Name Type Description
primitive Object optional 将基元提升到"顶部"。
Throws:
See:

remove(primitive)Boolean

从集合中移除基元。
Name Type Description
primitive Object optional 要移除的基元。
Returns:
如果基元已被移除,则为 true;如果基元未定义或在集合中找不到,则为 false。
Throws:
Example:
var billboards = scene.primitives.add(new SuperMap3D.BillboardCollection());
scene.primitives.remove(p);  // Returns true
See:

removeAll()

删除集合中的所有基元。
Throws:
See: