Cesium BillboardCollection

new Cesium.BillboardCollection(選項)

一個可渲染的廣告牌的集合。 廣告牌是viewport-aligned 圖像定位在3 d場景。


例子的廣告牌


廣告牌從集合中添加和刪除BillboardCollection#addBillboardCollection#remove。 廣告牌在一組自動分享紋理 對圖像相同的標識符。
性能:

最佳性能,更喜歡一些集合,每個都有很多廣告牌, 許多集合只有幾廣告牌。 組織收集這樣的廣告牌 與相同的更新頻率是相同的集合,即。 廣告牌,沒有 改變應該在一個集合;應該在另一個廣告牌,改變每一幀 集合;等等。

名字 類型 描述
options 對象 可選對象具有以下屬性:
的名字 類型 默認的 描述
modelMatrix Matrix4 Matrix4.IDENTITY 可選4 x4變換矩陣,將每個廣告牌從模型轉換爲世界座標。
debugShowBoundingVolume 布爾 false 可選僅供調試。 決定如果這原始的命令顯示碰撞球體。
scene 場景   可選必須通過廣告牌使用高度引用屬性或將對全球深度測試。
例子:
// Create a billboard collection with two billboards
var 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'
});
演示:
看到的:

成員

debugShowBoundingVolume:布爾

該屬性僅供調試;它不適合生產使用也不優化。

吸引每個畫的邊界範圍在原始的命令。

默認值: false
返回此集合的廣告牌。 這是常用的BillboardCollection#get遍歷所有的廣告牌 在收集。
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
});
看到的:

方法

創建並添加一個廣告牌與指定的初始屬性集合。 添加的廣告牌,因此它可以返回修改或從集合中刪除。
性能:

調用add預計持續時間。 然而,收集的頂點緩衝 是重寫——一個O(n)操作,也會增加CPU GPU開銷。 爲 最佳性能,添加調用之前儘可能多的廣告牌update

的名字 類型 描述
billboard 對象 可選模板描述廣告牌的屬性,如例1所示。
返回:
的廣告牌添加到集合中。
拋出:
例子:
// 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)
});
看到的:

包含(廣告牌)布爾

檢查是否該集合包含一個給定的廣告牌。
的名字 類型 描述
billboard 廣告牌 可選檢查的廣告牌。
返回:
真的如果這個集合包含的廣告牌,假的。
看到的:

摧毀()未定義的

破壞WebGL資源由這個對象。 摧毀一個對象可以確定的 WebGL釋放資源,而不是依靠垃圾收集器銷燬該對象。

一旦對象被摧毀,它不應使用;調用以外的任何函數isDestroyed將導致DeveloperError例外。 因此, 指定返回值(undefined)對象的例子。
返回:
拋出:
例子:
billboards = billboards && billboards.destroy();
看到的:
返回集合中的廣告牌在指定的索引。 指數是從零開始的 和增加的廣告牌。 刪除一個廣告牌轉移所有的廣告牌 左邊,改變他們的指標。 這個函數是常用的BillboardCollection#length遍歷所有的廣告牌 在收集。
性能:

預計持續時間。 如果廣告牌從集合中刪除BillboardCollection#update是不叫,一個隱式的O(n)操作執行。

的名字 類型 描述
index 數量 廣告牌的從零開始的索引。
返回:
廣告牌在指定的索引。
拋出:
例子:
// Toggle the show property of every billboard in the collection
var len = billboards.length;
for (var i = 0; i < len; ++i) {
  var b = billboards.get(i);
  b.show = !b.show;
}
看到的:
返回true,如果這個對象被毀;否則,假的。

如果這個對象被摧毀,它不應使用;調用以外的任何函數isDestroyed將導致DeveloperError例外。
返回:
true如果這個對象被毀;否則,false
看到的:

刪除(廣告)布爾

從集合中刪除一個廣告牌。
性能:

調用remove預計持續時間。 然而,收集的頂點緩衝 是重寫——一個O(n)操作,也會增加CPU GPU開銷。 爲 最佳性能,消除儘可能多的廣告牌在調用之前update。 如果您打算暫時隱藏一個廣告牌,它通常是更有效的電話Billboard#show而不是刪除和re-adding廣告牌。

的名字 類型 描述
billboard 廣告牌 刪除的廣告牌。
返回:
true如果廣告牌切除;false如果廣告牌集合中不存在。
拋出:
例子:
var b = billboards.add(...);
billboards.remove(b);  // Returns true
看到的:
從集合中刪除所有的廣告牌。
性能:

O(n)。 這是更有效的去除所有的廣告牌 從一個集合,然後添加新的完全比創建一個新的集合。

拋出:
例子:
billboards.add(...);
billboards.add(...);
billboards.removeAll();
看到的:
時調用ViewerCesiumWidget渲染的場景 繪製命令需要渲染這種原始的。

不會直接調用這個函數。 這是記錄來 列出可能的異常傳播時場景呈現:

拋出:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章