指定一组裁剪平面。裁剪平面选择性地禁用渲染,在
ClippingPlane 对象列表外部区域对单个 gltf 模型、3D Tileset 或地球体禁用渲染。
通常,裁剪平面的坐标相对于它们所附加的对象,因此距离设为 0 的平面将裁剪 穿过对象的中心。
对于 3D Tiles,使用根 tile 的变换来定位裁剪平面。如果未定义变换,则使用根 tile 的 Cesium3DTile#boundingSphere。
| Name | Type | Description | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
optional
具有以下属性的对象:
|
Example:
// 此裁剪平面的距离为正,这意味着其法线
// 朝向原点。这将裁剪平面后面的所有内容,
// 即 y 坐标 < -5 的任何内容。
const clippingPlanes = new Cesium.ClippingPlaneCollection({
planes : [
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 1.0, 0.0), 5.0)
],
});
// 创建实体并将 ClippingPlaneCollection 附加到模型。
const 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:
Members
用于高亮显示对象被裁剪边缘的颜色。
-
Default Value:
Color.WHITE
应用于对象裁剪边缘的高亮宽度(以像素为单位)。
-
Default Value:
0.0
如果为 true,裁剪将启用。
-
Default Value:
true
返回此集合中平面的数量。这通常与
ClippingPlaneCollection#get 一起使用以遍历集合中的所有平面。
modelMatrix : Matrix4
4x4 变换矩阵,指定相对于裁剪平面
原始坐标系的附加变换。
-
Default Value:
Matrix4.IDENTITY
readonly planeAdded : Event
当向集合添加新裁剪平面时触发的事件。事件处理程序
将接收新平面及其添加的索引。
readonly planeRemoved : Event
当从集合中移除裁剪平面时触发的事件。事件处理程序
将接收被移除的平面及其被移除的索引。
如果为 true,当区域位于集合中任何平面外部时将被裁剪。
否则,仅当区域位于所有平面外部时才会被裁剪。
-
Default Value:
false
Methods
将指定的
ClippingPlane 添加到集合中,用于选择性地禁用
每个平面外部的渲染。使用 ClippingPlaneCollection#unionClippingRegions 修改
多个平面的裁剪行为。
| Name | Type | Description |
|---|---|---|
plane |
ClippingPlane | 要添加到集合的 ClippingPlane。 |
See:
检查此集合是否包含与给定 ClippingPlane 相等的裁剪平面。
| Name | Type | Description |
|---|---|---|
clippingPlane |
ClippingPlane | optional 要检查的 ClippingPlane。 |
Returns:
如果此集合包含 ClippingPlane 则返回 true,否则返回 false。
销毁此对象持有的 WebGL 资源。销毁对象允许确定性
释放 WebGL 资源,而不是依赖垃圾回收器来销毁此对象。
对象销毁后不应再使用;调用除
对象销毁后不应再使用;调用除
isDestroyed 之外的任何函数都将导致 DeveloperError 异常。因此,
如示例所示,将返回值(undefined)赋给该对象。
Throws:
-
DeveloperError : 此对象已被销毁,即调用了 destroy()。
Example:
clippingPlanes = clippingPlanes && clippingPlanes.destroy();
See:
返回集合中指定索引处的平面。索引从零开始,
随着添加平面而增加。移除平面会将其后的所有平面左移,
更改它们的索引。此函数通常与
ClippingPlaneCollection#length 一起使用以遍历集合中的所有平面。
| Name | Type | Description |
|---|---|---|
index |
number | 平面的从零开始的索引。 |
Returns:
指定索引处的 ClippingPlane。
Returns:
如果此对象已被销毁则返回
true;否则返回 false。
从集合中移除给定 ClippingPlane 的第一次出现。
| Name | Type | Description |
|---|---|---|
clippingPlane |
ClippingPlane |
Returns:
如果平面被移除则返回
true;如果在集合中未找到平面则返回 false。
从集合中移除所有平面。
