new Cesium.ClippingPlaneCollection(options)
指定一组剪切平面。
对于单个gltf模型、3D Tileset或椭球,在指定的
ClippingPlane
对象列表之外的区域,裁剪平面选择性地禁用渲染。
一般来说,剪切平面的坐标是相对于它们所附着的物体的,所以距离设为0的平面将穿过物体的中心剪切。
对于3D Tiles,根节点瓦片的transform用于定位剪切平面。如果没有定义transform,则使用根节点的Cesium3DTile#boundingSphere
代替。
Name | Type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有下列属性的对象:
|
示例:
// 这个裁剪平面的距离是正的,这意味着它的法线是面对原点的,这个会裁剪掉平面后面的所有东西,也就是y坐标< -5的所有东西。
var clippingPlanes = new Cesium.ClippingPlaneCollection({
planes : [
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 1.0, 0.0), 5.0)
],
});
//创建一个实体并将ClippingPlaneCollection附加到模型上。
var entity = viewer.entities.add({
position : Cesium.Cartesian3.fromDegrees(-123.0744619, 44.0503706, 10000),
model : {
uri : 'model.gltf',
minimumPixelSize : 128,
maximumScale : 20000,
clippingPlanes : clippingPlanes
}
});
viewer.zoomTo(entity);
演示Demo:
成员变量
edgeColor : Color
用于突出显示裁剪对象的边缘的颜色。
-
Default Value:
Color.WHITE
edgeWidth : Number
应用于裁剪对象的边缘的突出显示的宽度(以像素为单位)。
-
Default Value:
0.0
enabled : Boolean
如果为true,将开启裁剪。
-
Default Value:
true
返回集合的长度,这通常与
ClippingPlaneCollection#get
一起使用,以迭代集合中的所有平面。
modelMatrix : Matrix4
4x4变换矩阵,指定了相对于剪切平面原始坐标系统的附加变换。
-
Default Value:
Matrix4.IDENTITY
planeAdded : Event
将新的裁剪平面添加到集合时触发的事件,事件处理程序将被传递到新平面及其所在的索引。
-
Default Value:
Event()
planeRemoved : Event
从集合中删除新的裁剪平面时触发的事件, 事件处理程序将传递新平面和从中删除该平面的索引。
-
Default Value:
Event()
unionClippingRegions : Boolean
如果为true,则如果区域位于集合中任何平面的外部,则该区域将被裁剪。否则,一个区域只有在每个平面的外侧才会被裁剪。
-
Default Value:
false
内置方法
add(plane)
将指定的
ClippingPlane
添加到集合中。
通过ClippingPlaneCollection#unionClippingRegions
设置裁剪方式。
Name | Type | Description |
---|---|---|
plane |
ClippingPlane | 要添加到集合中的裁剪平面。 |
参考:
检查此集合是否包含一个与给定的裁剪平面相等的裁剪平面。
Name | Type | Description |
---|---|---|
clippingPlane |
ClippingPlane | optional 要检查的裁剪平面。 |
返回值:
如果此集合包含裁剪平面,则为true。
destroy()
销毁此对象持有的WebGL资源。
一旦对象被销毁,它将不能在使用; 调用除
一旦对象被销毁,它将不能在使用; 调用除
isDestroyed
之外的任何函数都会导致DeveloperError
异常。
因此,将返回值(undefined
)赋给对象,如示例所示。
异常情况:
-
DeveloperError : 对象已经被销毁。
示例:
clippingPlanes = clippingPlanes && clippingPlanes .destroy();
参考:
获取指定索引处的裁剪平面,索引是从零开始的,并随着平面的增加而增加。
此函数通常与
ClippingPlaneCollection#length
一起用于迭代集合中的所有平面。
Name | Type | Description |
---|---|---|
index |
Number | 索引。 |
返回值:
索引处的裁剪平面。
返回值:
false
从集合中移除给定剪切平面的第一个匹配项。
Name | Type | Description |
---|---|---|
clippingPlane |
ClippingPlane |
返回值:
如果移除成功,返回true。
removeAll()
移除集合中所有的裁剪平面。
update()
在 Viewer 或 CesiumWidget 渲染场景时调用至获取渲染该图元所需的绘制命令。
不要直接调用此函数。