基元集合。它通常与
Scene#primitives
一起使用,但 PrimitiveCollection 本身也是一个基元,因此可以将集合添加到集合中,形成一个层次结构。
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
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
-
确定当使用
PrimitiveCollection#destroy
或PrimitiveCollection#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
-
获取集合中基元的数量。
-
确定是否显示该集合中的基元。
-
Default Value:
true
Methods
-
向集合中添加一个基元。
Name Type Description primitive
Object 补充的原始数据。 Returns:
添加到集合中的基元。Throws:
-
DeveloperError : 该对象被销毁,即调用destroy()。
Example:
var billboards = scene.primitives.add(new SuperMap3D.BillboardCollection());
-
-
确定该集合是否包含一个基元。
Name Type Description primitive
Object optional 需要检查的原始数据。 Returns:
如果基元在集合中,则为 true;如果基元未定义或在集合中找不到,则为 false。Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
-
-
销毁该集合中每个基元所持有的 WebGL 资源。显式销毁该集合可以确定性地释放 WebGL 资源,而不是依赖垃圾回收器来销毁该集合。
由于销毁集合会销毁所有包含的基元,因此只有在确定没有其他代码仍在使用任何包含的基元时,才能销毁集合。
一旦该集合被销毁,就不应再使用;调用 isDestroyed 以外的任何函数都将导致DeveloperError
异常。因此,请按照示例中的方法将返回值(未定义)赋值给对象。Returns:
Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
Example:
primitives = primitives && primitives.destroy();
See:
-
-
返回指定索引处集合中的基元。
Name Type Description index
Number 要返回的基元的零基索引。 Returns:
位于index
的基元。Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
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:
-
-
Returns:
如果该对象已被销毁,则为 true;否则为 false。 -
将基元在集合中 "下移一个"。 如果集合中的所有基元都绘制在球面上,则会将原型向下移动一个。
Name Type Description primitive
Object optional 要降低的基元。 Throws:
-
DeveloperError : primitive 不在集合中。
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
-
-
将基元降低到集合的 "底部"。 如果集合中的所有基元都绘制在球面上,则会将该基元移动到底部。
Name Type Description primitive
Object optional 要降低到底部的基元。 Throws:
-
DeveloperError : 基元不在此集合中。
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
-
-
将集合中的基元 "上移一级"。如果集合中的所有基元都绘制在球面上,则会将该基元向上移动一级。
Name Type Description primitive
Object optional 要引发的基元。 Throws:
-
DeveloperError : primitive 不在集合里。
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
-
-
将基元提升到集合的 "顶部"。如果集合中的所有基元都绘制在球面上,则该图元会被移动到顶端。
Name Type Description primitive
Object optional 将基元提升到"顶部"。 Throws:
-
DeveloperError : primitive 不在集合中。
-
DeveloperError : 该对象被销毁,即调用destroy()。
-
-
从集合中移除基元。
Name Type Description primitive
Object optional 要移除的基元。 Returns:
如果基元已被移除,则为 true;如果基元未定义或在集合中找不到,则为 false。Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
Example:
var billboards = scene.primitives.add(new SuperMap3D.BillboardCollection()); scene.primitives.remove(p); // Returns true
See:
-
-
删除集合中的所有基元。
Throws:
-
DeveloperError : 该对象已被销毁,即 destroy() 被调用。
-