#### # new CuttingTool(viewer, layers, optionsopt)

三维场景裁剪工具集

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`viewer` | Viewer | 三维视图对象，详见Cesium.Viewer
`layers` | Array.<(Cesium.MapGISM3DSet|Cesium.Cesium3DTileset)> | 要剖切的图层对象数组， 详见《Cesium.MapGISM3DSet》 《Cesium.Cesium3DTileset》
`options` | Object | 可选参数
`onErrorCallback` | function | 发生错误时的回调函数，type：错误类型，msg：错误信息。0：点数量小于2；1：为凹多边形，不支持；2：有空对象；3：格式不是笛卡尔对象；4：裁剪体高度不正确
`isCuttingTerrain` | Boolean | 是否支持开挖地形

##### 请参考以下示例：

1、动态剖切
2、地质体封边
3、地形开挖

##### 支持如下方法：

[1、创建模型裁剪面]
[2、修改辅助剖切面颜色]
[3、通过直线，绘制模型裁剪面]
[4、通过折线，绘制模型裁剪面，请提两个以上的点，否则不执行剖切分析]
[5、通过边界区域，以及最小最大高程，构建裁剪体]
[6、多边形几何裁剪]
[7、移除所有裁剪面]
[8、开关当前被CuttingTool管理的裁剪体]
[9、显示或隐藏所有辅助剖切面(体)]

### 成员变量

类型: Boolean

#### # isCuttingTerrain

是否支持开挖地形 打开后通过`CuttingTool#createModelCuttingVolume` 和 `CuttingTool#createModelCuttingPlaneFromPolyline` 创建的裁剪体会同时对地形做裁剪。 `CuttingTool#createModelCuttingPlaneFromPolyline` 添加地形支持时由于缺少高度所以不会开启剖切面封边

Default Value:
  - false

### 方法

#### # changePlaneColor(coloropt)

修改辅助剖切面颜色

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`color` | Cesium.Color | Cesium.Color.WHITE.withAlpha(0.5) | 辅助面颜色

#### # createModelCuttingPlane(normal, optionsopt)

创建模型裁剪面，支持MapGISM3DSet和Cesium3DTileset

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`normal` | Cesium.Cartesian3 |  | 裁剪面的法线
`options` | Object |  | 可选参数
`distance` | Object | 0 | 裁剪面的初始距离
`scaleWidth` | Number | 2.5 | 辅助面宽度缩放比例
`scaleHeight` | Number | 2.5 | 辅助面高度缩放比例
`unionClippingRegions` | Boolean | false | 裁剪方向，false：原方向，true：反向
`color` | Cesium.Color | Cesium.Color.WHITE.withAlpha(0.5) | 辅助面颜色
`showCuttingPlane` | Boolean | true | 是否显示辅助面

#### # createModelCuttingPlaneFromLine(pointA, pointB, optionsopt)

通过直线，绘制模型裁剪面，支持MapGISM3DSet和Cesium3DTileset

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`pointA` | Cesium.Cartesian3 |  | 直线起始点 A，必须为角度制的经纬度值
`pointB` | Cesium.Cartesian3 |  | 直线终止点 B，必须为角度制的经纬度值
`options` | Object |  | 可选参数
`scaleWidth` | Number | 2.5 | 辅助面宽度缩放比例
`scaleHeight` | Number | 2.5 | 辅助面高度缩放比例
`color` | Cesium.Color | Cesium.Color.WHITE.withAlpha(0.5) | 辅助面颜色
`showCuttingPlane` | Boolean | true | 是否显示辅助面
`unionClippingRegions` | Boolean | false | 裁剪方向，false为原方向，true为反方向

#### # createModelCuttingPlaneFromPolyline(positions, optionsopt)

通过折线，绘制模型裁剪面，请提两个以上的点，否则不执行剖切分析，支持MapGISM3DSet和Cesium3DTileset

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`positions` | Array.<Cesium.Cartesian3> |  | 折线的点坐标
`options` | Object |  | 可选参数
`scaleWidth` | Number | 2.5 | 辅助面宽度缩放比例(剖切对象为模型时，才会有有效辅助面，辅助面相关配置才会生效)
`scaleHeight` | Number | 2.5 | 辅助面高度缩放比例
`color` | Cesium.Color | Cesium.Color.WHITE.withAlpha(0.5) | 辅助面颜色
`showCuttingPlane` | Boolean | true | 是否显示辅助面
`unionClippingRegions` | Boolean | false | 裁剪方向，true为原方向，false为反方向

#### # createModelCuttingPolygon(positions, minHeight, maxHeight, options)

多边形几何裁剪
通过边界区域，以及高程，构建裁剪几何体。支持凹多边形裁剪，但对封边效果支持不好，仅支持MapGISM3DSet

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`positions` | Array |  | 区域边界点数组,点需要按照顺时针方向选取。要求是经纬度坐标
`minHeight` | Number |  | 最小高程
`maxHeight` | Number |  | 最大高程
`options` | Object |  | 可选参数
`color` | Cesium.Color | new Cesium.Color.WIHTE.withAlpha(0.2) | 可选参数，配置裁剪体的颜色，以及透明度
`unionClippingRegions` | Boolean | false | 可选参数，裁剪方向，false：原方向，true反方向
`showCuttingPlane` | Boolean | true | 是否显示辅助面

##### 示例

    var cutTool = new Cesium.CuttingTool(viewer, layerList);
    var positions = [
        113.0406, 30.0378,
        113.0595, 30.0378,
        113.0595, 30.0297,
        113.0762, 30.0297,
        113.0762, 30.0179,
        113.0595, 30.0179,
        113.0595, 30.0099,
        113.0406, 30.0099
    ];
    cutTool.createModelCuttingPolygon(positions, -1000, 500, {
        //裁剪方向，false：原方向，true反方向
        unionClippingRegions: false,
        //配置裁剪体的颜色，以及透明度
        color: new Cesium.Color(1, 1, 1, 0.2),
        //是否显示裁剪体
        showCuttingPlane: true
    })

#### # createModelCuttingVolume(positions, minHeight, maxHeight, options)

通过边界区域，以及最小最大高程，构建裁剪体，支持MapGISM3DSet和Cesium3DTileset

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`positions` | Array.<Cesium.Cartesian3> |  | 区域边界点数组,点需要按照顺时针方向选取
`minHeight` | Number |  | 最小高程
`maxHeight` | Number |  | 最大高程
`options` | Object |  | 可选参数
`color` | Cesium.Color | new Cesium.Color.WIHTE.withAlpha(0.2) | 可选参数，配置裁剪体的颜色，以及透明度
`unionClippingRegions` | Boolean | false | 可选参数，裁剪方向，false：原方向，true反方向
`showCuttingPlane` | Boolean | true | 是否显示辅助面(剖切对象为模型时，才会有有效辅助面，辅助面相关配置才会生效)
`terrainGroundFillImage` | String | MAPGIS_BASE_URL+'webclient-cesium-plugin-resource/assets/images/sandydrysoil-albedo2b.jpg' | 地形封边底面颜色纹理资源路径
`terrainWallFillImage` | String | MAPGIS_BASE_URL+'webclient-cesium-plugin-resource/assets/images/wall-texture-default.jpg' | 地形封边剖面颜色纹理资源路径

#### # enabled(value)

开关当前被CuttingTool管理的裁剪体

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`value` | Boolean |

#### # removeAll()

移除所有裁剪面

##### 示例

    var cutTool = new Cesium.CuttingTool(viewer, layerList);

    cutTool.removeAll();

#### # showCuttingPlane(showPlaneopt)

控制已有的剖切面辅助面的显隐状（在添加模型裁剪面时，辅助面的显隐需通过配置可选参数options.showCuttingPlane来设置）

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`showPlane` | Boolean | true | 显示或隐藏所有辅助剖切面(体)，true为显示所有辅助剖切面(体)，false为隐藏所有辅助剖切面(体)