# CuttingTool

#### new Cesium.CuttingTool(viewer, layers, options)
MapGIS/Tools/CuttingTool.js 27

三维场景裁剪工具集

Name | Type | Description
--- | --- | ---
`viewer` | Viewer | 三维视图对象
`layers` | Array.<MapGISM3DSet> |
`options` | Object | optional 可选参数
Name | Type | Description
--- | --- | ---
`onErrorCallback` | function | optional 发生错误时的回调函数，type：错误类型，msg：错误信息。0：点数量小于2；1：为凹多边形，不支持；2：有空对象；3：格式不是笛卡尔对象；4：裁剪体高度不正确

### Methods

#### changePlaneColor(color)
MapGIS/Tools/CuttingTool.js 184

修改辅助剖切面颜色

Name | Type | Default | Description
--- | --- | --- | ---
`color` | Color | `Color.WHITE.withAlpha(0.5)` | optional 辅助面颜色

#### createModelCuttingPlane(normal, options)
MapGIS/Tools/CuttingTool.js 51

创建模型裁剪面

Name | Type | Description
--- | --- | ---
`normal` | Cartesian3 | 裁剪面的法线
`options` | Object | optional 可选参数
Name | Type | Default | Description
--- | --- | --- | ---
`distance` | Object | `0` | optional 裁剪面的初始距离
`scaleWidth` | Number | `2.5` | optional 辅助面宽度缩放比例
`scaleHeight` | Number | `2.5` | optional 辅助面高度缩放比例
`unionClippingRegions` | Boolean | `false` | optional 裁剪方向
`color` | Color | `Color.WHITE.withAlpha(0.5)` | optional 辅助面颜色

#### createModelCuttingPlaneFromLine(pointA, pointB, options)
MapGIS/Tools/CuttingTool.js 204

通过直线，绘制模型裁剪面

Name | Type | Description
--- | --- | ---
`pointA` | Cartesian3 | 直线起始点 A，必须为角度制的经纬度值
`pointB` | Cartesian3 | 直线终止点 B，必须为角度制的经纬度值
`options` | Object | optional 可选参数
Name | Type | Default | Description
--- | --- | --- | ---
`distance` | Object | `0` | optional 裁剪面的初始距离
`scaleWidth` | Number | `2.5` | optional 辅助面宽度缩放比例
`scaleHeight` | Number | `2.5` | optional 辅助面高度缩放比例
`unionClippingRegions` | Boolean | `false` | optional 裁剪方向
`color` | Color | `Color.WHITE.withAlpha(0.5)` | optional 辅助面颜色

#### createModelCuttingPlaneFromPolyline(positions, options)
MapGIS/Tools/CuttingTool.js 229

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

Name | Type | Description
--- | --- | ---
`positions` | Array.<Cartesian3> | 折线的点坐标
`options` | Object | optional 可选参数
Name | Type | Default | Description
--- | --- | --- | ---
`distance` | Object | `0` | optional 裁剪面的初始距离
`unionClippingRegions` | Boolean | `true` | optional 裁剪方向，true为向外剖切，false为向内剖切

#### createModelCuttingPlanes(normals, originalPoints, minHeight, maxHeight, options)
MapGIS/Tools/CuttingTool.js 349

通过包围面，创建裁剪体

Name | Type | Description
--- | --- | ---
`normals` | Array.<Cartesian3> | 面法线数组
`originalPoints` | Array.<Cartesian3> | 面中心点数组
`minHeight` | Number | 裁剪区域的最小高程
`maxHeight` | Number | 裁剪区域的最大高程
`options` | Object | 可选参数

#### createModelCuttingVolume(positions, minHeight, maxHeight, options)
MapGIS/Tools/CuttingTool.js 444

通过边界区域，以及最小最大高程，构建裁剪体

Name | Type | Description
--- | --- | ---
`positions` | Array.<Cartesian3> | 区域边界点数组
`minHeight` | Number | 最小高程
`maxHeight` | Number | 最大高程
`options` | Object | 可选参数
Name | Type | Default | Description
--- | --- | --- | ---
`color` | Color | `new Color.WIHTE.withAlpha(0.2)` | optional 可选参数，配置裁剪体的颜色，以及透明度
`unionClippingRegions` | Boolean | `true` | optional 可选参数，配置切割方向

#### removeAll()
MapGIS/Tools/CuttingTool.js 570

移除所有裁剪面

##### Example:

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

    cutTool.removeAll();