Cesium BillboardCollection

来源:互联网 发布:现货交易 网络销售 编辑:程序博客网 时间:2024/06/06 18:00

new Cesium.BillboardCollection(选项)

一个可渲染的广告牌的集合。 广告牌是viewport-aligned 图像定位在3 d场景。


例子的广告牌


广告牌从集合中添加和删除BillboardCollection#addBillboardCollection#remove。 广告牌在一组自动分享纹理 对图像相同的标识符。
性能:

最佳性能,更喜欢一些集合,每个都有很多广告牌, 许多集合只有几广告牌。 组织收集这样的广告牌 与相同的更新频率是相同的集合,即。 广告牌,没有 改变应该在一个集合;应该在另一个广告牌,改变每一帧 集合;等等。

名字类型描述options对象可选对象具有以下属性:的名字类型默认的描述modelMatrixMatrix4Matrix4.IDENTITY可选4 x4变换矩阵,将每个广告牌从模型转换为世界坐标。debugShowBoundingVolume布尔false可选仅供调试。 决定如果这原始的命令显示碰撞球体。scene场景 可选必须通过广告牌使用高度引用属性或将对全球深度测试。
例子:
// Create a billboard collection with two billboardsvar billboards = scene.primitives.add(new Cesium.BillboardCollection());billboards.add({  position : new Cesium.Cartesian3(1.0, 2.0, 3.0),  image : 'url/to/image'});billboards.add({  position : new Cesium.Cartesian3(4.0, 5.0, 6.0),  image : 'url/to/another/image'});
演示:
    • Cesium Sandcastle Billboard 
    • http://cesiumjs.org/Cesium/Build/Documentation/BillboardCollection.html
看到的:
  • BillboardCollection #添加
  • BillboardCollection #删除
  • 广告牌
  • LabelCollection

成员

debugShowBoundingVolume:布尔

该属性仅供调试;它不适合生产使用也不优化。

吸引每个画的边界范围在原始的命令。

默认值: false

长度数量:

返回此集合的广告牌。 这是常用的BillboardCollection#get遍历所有的广告牌 在收集。

modelMatrix:Matrix4

4 x4变换矩阵,将这个集合中的每个广告牌从模型到世界坐标。 这是单位矩阵时,广告牌在世界坐标,即。 ,地球的WGS84坐标。 局部坐标系可以通过提供一个使用不同的变换矩阵,这样回来了 通过Transforms.eastNorthUpToFixedFrame
默认值: Matrix4.IDENTITY
例子:
var center = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);billboards.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(center);billboards.add({  image : 'url/to/image',  position : new Cesium.Cartesian3(0.0, 0.0, 0.0) // center});billboards.add({  image : 'url/to/image',  position : new Cesium.Cartesian3(1000000.0, 0.0, 0.0) // east});billboards.add({  image : 'url/to/image',  position : new Cesium.Cartesian3(0.0, 1000000.0, 0.0) // north});billboards.add({  image : 'url/to/image',  position : new Cesium.Cartesian3(0.0, 0.0, 1000000.0) // up});
看到的:
  • Transforms.eastNorthUpToFixedFrame

方法

添加(广告牌)广告牌

创建并添加一个广告牌与指定的初始属性集合。 添加的广告牌,因此它可以返回修改或从集合中删除。
性能:

调用add预计持续时间。 然而,收集的顶点缓冲 是重写——一个O(n)操作,也会增加CPU GPU开销。 为 最佳性能,添加调用之前尽可能多的广告牌update

的名字类型描述billboard对象可选模板描述广告牌的属性,如例1所示。
返回:
的广告牌添加到集合中。
抛出:
  • DeveloperError:这个对象被毁,即。 、破坏()被称为。
例子:
// Example 1:  Add a billboard, specifying all the default values.var b = billboards.add({  show : true,  position : Cesium.Cartesian3.ZERO,  pixelOffset : Cesium.Cartesian2.ZERO,  eyeOffset : Cesium.Cartesian3.ZERO,  horizontalOrigin : Cesium.HorizontalOrigin.CENTER,  verticalOrigin : Cesium.VerticalOrigin.CENTER,  scale : 1.0,  image : 'url/to/image',  color : Cesium.Color.WHITE,  id : undefined});
// Example 2:  Specify only the billboard's cartographic position.var b = billboards.add({  position : Cesium.Cartesian3.fromDegrees(longitude, latitude, height)});
看到的:
  • BillboardCollection #删除
  • BillboardCollection # removeAll

包含(广告牌)布尔

检查是否该集合包含一个给定的广告牌。
的名字类型描述billboard广告牌可选检查的广告牌。
返回:
真的如果这个集合包含的广告牌,假的。
看到的:
  • BillboardCollection #得到

摧毁()未定义的

破坏WebGL资源由这个对象。 摧毁一个对象可以确定的 WebGL释放资源,而不是依靠垃圾收集器销毁该对象。

一旦对象被摧毁,它不应使用;调用以外的任何函数isDestroyed将导致DeveloperError例外。 因此, 指定返回值(undefined)对象的例子。
返回:
抛出:
  • DeveloperError:这个对象被毁,即。 、破坏()被称为。
例子:
billboards = billboards && billboards.destroy();
看到的:
  • BillboardCollection # isDestroyed

得到(索引)广告牌

返回集合中的广告牌在指定的索引。 指数是从零开始的 和增加的广告牌。 删除一个广告牌转移所有的广告牌 左边,改变他们的指标。 这个函数是常用的BillboardCollection#length遍历所有的广告牌 在收集。
性能:

预计持续时间。 如果广告牌从集合中删除BillboardCollection#update是不叫,一个隐式的O(n)操作执行。

的名字类型描述index数量广告牌的从零开始的索引。
返回:
广告牌在指定的索引。
抛出:
  • DeveloperError:这个对象被毁,即。 、破坏()被称为。
例子:
// Toggle the show property of every billboard in the collectionvar len = billboards.length;for (var i = 0; i < len; ++i) {  var b = billboards.get(i);  b.show = !b.show;}
看到的:
  • BillboardCollection #长度

isDestroyed()布尔

返回true,如果这个对象被毁;否则,假的。

如果这个对象被摧毁,它不应使用;调用以外的任何函数isDestroyed将导致DeveloperError例外。
返回:
true如果这个对象被毁;否则,false
看到的:
  • BillboardCollection #摧毁

删除(广告)布尔

从集合中删除一个广告牌。
性能:

调用remove预计持续时间。 然而,收集的顶点缓冲 是重写——一个O(n)操作,也会增加CPU GPU开销。 为 最佳性能,消除尽可能多的广告牌在调用之前update。 如果您打算暂时隐藏一个广告牌,它通常是更有效的电话Billboard#show而不是删除和re-adding广告牌。

的名字类型描述billboard广告牌删除的广告牌。
返回:
true如果广告牌切除;false如果广告牌集合中不存在。
抛出:
  • DeveloperError:这个对象被毁,即。 、破坏()被称为。
例子:
var b = billboards.add(...);billboards.remove(b);  // Returns true
看到的:
  • BillboardCollection #添加
  • BillboardCollection # removeAll
  • 广告牌#显示

removeAll()

从集合中删除所有的广告牌。
性能:

O(n)。 这是更有效的去除所有的广告牌 从一个集合,然后添加新的完全比创建一个新的集合。

抛出:
  • DeveloperError:这个对象被毁,即。 、破坏()被称为。
例子:
billboards.add(...);billboards.add(...);billboards.removeAll();
看到的:
  • BillboardCollection #添加
  • BillboardCollection #删除

更新()

时调用ViewerCesiumWidget渲染的场景 绘制命令需要渲染这种原始的。

不会直接调用这个函数。 这是记录来 列出可能的异常传播时场景呈现:

抛出:
  • RuntimeError:图像与id必须在阿特拉斯。
0 0