ClippingPlaneCollection

new Cesium.ClippingPlaneCollection(options)

指定一组裁剪平面。裁剪平面选择性地禁用渲染,在 ClippingPlane 对象列表外部区域对单个 gltf 模型、3D Tileset 或地球体禁用渲染。

通常,裁剪平面的坐标相对于它们所附加的对象,因此距离设为 0 的平面将裁剪 穿过对象的中心。

对于 3D Tiles,使用根 tile 的变换来定位裁剪平面。如果未定义变换,则使用根 tile 的 Cesium3DTile#boundingSphere

Name Type Description
options object optional 具有以下属性的对象:
Name Type Default Description
planes Array.<ClippingPlane> [] optional ClippingPlane 对象数组,用于选择性地禁用每个平面外部的渲染。
enabled boolean true optional 确定裁剪平面是否处于活动状态。
modelMatrix Matrix4 Matrix4.IDENTITY optional 4x4 变换矩阵,指定相对于裁剪平面原始坐标系的附加变换。
unionClippingRegions boolean false optional 如果为 true,当区域位于集合中任何平面外部时将被裁剪。否则,仅当区域位于所有平面外部时才会被裁剪。
edgeColor Color Color.WHITE optional 用于高亮显示对象被裁剪边缘的颜色。
edgeWidth number 0.0 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 一起使用以遍历集合中的所有平面。
4x4 变换矩阵,指定相对于裁剪平面 原始坐标系的附加变换。
Default Value: Matrix4.IDENTITY
当向集合添加新裁剪平面时触发的事件。事件处理程序 将接收新平面及其添加的索引。
当从集合中移除裁剪平面时触发的事件。事件处理程序 将接收被移除的平面及其被移除的索引。
如果为 true,当区域位于集合中任何平面外部时将被裁剪。 否则,仅当区域位于所有平面外部时才会被裁剪。
Default Value: false

Methods

将指定的 ClippingPlane 添加到集合中,用于选择性地禁用 每个平面外部的渲染。使用 ClippingPlaneCollection#unionClippingRegions 修改 多个平面的裁剪行为。
Name Type Description
plane ClippingPlane 要添加到集合的 ClippingPlane。
See:

contains(clippingPlane)boolean

检查此集合是否包含与给定 ClippingPlane 相等的裁剪平面。
Name Type Description
clippingPlane ClippingPlane optional 要检查的 ClippingPlane。
Returns:
如果此集合包含 ClippingPlane 则返回 true,否则返回 false。
See:
销毁此对象持有的 WebGL 资源。销毁对象允许确定性 释放 WebGL 资源,而不是依赖垃圾回收器来销毁此对象。

对象销毁后不应再使用;调用除 isDestroyed 之外的任何函数都将导致 DeveloperError 异常。因此, 如示例所示,将返回值(undefined)赋给该对象。
Throws:
Example:
clippingPlanes = clippingPlanes && clippingPlanes.destroy();
See:
返回集合中指定索引处的平面。索引从零开始, 随着添加平面而增加。移除平面会将其后的所有平面左移, 更改它们的索引。此函数通常与 ClippingPlaneCollection#length 一起使用以遍历集合中的所有平面。
Name Type Description
index number 平面的从零开始的索引。
Returns:
指定索引处的 ClippingPlane。
See:
如果此对象已被销毁则返回 true;否则返回 false。

如果此对象已被销毁,则不应使用它;调用除 isDestroyed 之外的任何函数都将导致 DeveloperError 异常。
Returns:
如果此对象已被销毁则返回 true;否则返回 false
See:

remove(clippingPlane)boolean

从集合中移除给定 ClippingPlane 的第一次出现。
Name Type Description
clippingPlane ClippingPlane
Returns:
如果平面被移除则返回 true;如果在集合中未找到平面则返回 false
See:
从集合中移除所有平面。
See:
ViewerCesiumWidget 渲染场景时调用, 构建裁剪平面的资源。

不要直接调用此函数。

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.