# CuttingTool

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

三维场景裁剪工具集

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

#### _createVolumeCuttingPlanes(normals, originalPoints, layer, options)
MapGIS/Tools/CuttingTool.js 335

通过包围面，创建裁剪体

Name | Type | Description
--- | --- | ---
`normals` | Array.<Cartesian3> | 面法线数组
`originalPoints` | Array.<Cartesian3> | 面中心点数组
`layer` | MapGISM3DSet | 要裁剪的M3D
`options` | Object | 可选参数

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

修改辅助剖切面颜色

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

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

创建模型裁剪面

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 裁剪方向，false：原方向，true：反向
`color` | Color | `Color.WHITE.withAlpha(0.5)` | optional 辅助面颜色
`showCuttingPlane` | Boolean | `true` | optional 是否显示辅助面

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

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

Name | Type | Description
--- | --- | ---
`pointA` | Cartesian3 | 直线起始点 A，必须为角度制的经纬度值
`pointB` | Cartesian3 | 直线终止点 B，必须为角度制的经纬度值

`options`

Object

optional 可选参数

Name | Type | Default | Description
--- | --- | --- | ---
`scaleWidth` | Number | `2.5` | optional 辅助面宽度缩放比例
`scaleHeight` | Number | `2.5` | optional 辅助面高度缩放比例
`unionClippingRegions` | Boolean | `false` | optional 裁剪方向，false为原方向，true为反方向
`color` | Color | `Color.WHITE.withAlpha(0.5)` | optional 辅助面颜色
`showCuttingPlane` | Boolean | `true` | optional 是否显示辅助面

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

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

Name | Type | Description
--- | --- | ---
`positions` | Array.<Cartesian3> | 折线的点坐标

`options`

Object

optional 可选参数

Name | Type | Default | Description
--- | --- | --- | ---
`unionClippingRegions` | Boolean | `false` | optional 裁剪方向，true为原方向，false为反方向

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

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

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 | `false` | optional 可选参数，裁剪方向，false：原方向，true反方向
`showCuttingPlane` | Boolean | `true` | optional 是否显示辅助面

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

移除所有裁剪面

##### Example:

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

    cutTool.removeAll();