Class: ModelCut

Glodon.CIMCube.Utils. ModelCut

模型裁剪

new ModelCut(map [, options])

模型裁剪构造函数
Parameters:
Name Type Argument Description
map Glodon.CIMCube CIMCube实例
options Object <optional>
模型剖切配置参数
Properties
Name Type Argument Description
idPrefix String <optional>
区域id的前置字符串,默认'region'
edgeColor String <optional>
剖切口颜色,透明度设置无效
edgeWidth Number <optional>
剖切口线宽
cutMode Glodon.CIMCube.Global.Defines.ModelCutMode <optional>
模型裁剪模式,默认为ModelCutMode.INNER
layers Array.<(Tiles3DLayer|GltfLayer)> <optional>
指定剖切的图层数组 - 默认选择所有图层;
region Array.<Array.<Array.<Number>>> | Array.<Array.<Number>> <optional>
指定裁剪面顶点数组,更多参考region方法;

Members


cutMode :Glodon.CIMCube.Global.Defines.ModelCutMode

获取当前裁剪模式
Type:
Example
const modelcut = new Glodon.CIMCube.Utils.ModelCut(viewer, options);
const mode = modelcut.cutMode;

edgeColor :String

剖切口颜色
Type:
  • String

edgeWidth :Number

剖切口宽度
Type:
  • Number

<readonly> isActive :Boolean

模型裁剪是否启动,启动则返回true,否则返回false
Type:
  • Boolean
Example
const modelcut = new Glodon.CIMCube.Utils.ModelCut(viewer, clipMode, options);
const isActive = modelcut.isActive;

layers :Array.<(Tiles3DLayer|GltfLayer)>

裁剪图层
Type:
  • Array.<(Tiles3DLayer|GltfLayer)>
Example
modelcut.layers = [tiles3dLayer,gltfLayer];

region :Object

全新设置裁剪区域; 裁剪面顶点数组,经纬用“度”做单位,高则是“米”;
Type:
  • Object
Example
modelcut.region = [
          [[106.71, 29.60, 552.35],  [106.77, 29.59, 142.12],[...], .....],
          ...
       ];
或者传一个数组,保持向前兼容;
modelcut.region = [[106.71, 29.60, 552.35],  [106.77, 29.59, 142.12],[...], .....],

Methods


activate()

开启裁剪
Example
const modelcut = new Glodon.CIMCube.Utils.ModelCut(viewer, options);
modelcut.activate();

addRegion(value, id [, updateNow])

追加新的裁剪区域
Parameters:
Name Type Argument Default Description
value Array.<Array.<Number>> 新的裁剪区域;
id String 区域的id,用于removeRegion时候用;
updateNow Boolean <optional>
false 表示是否立即刷新裁剪效果 - true的话不需要用户自己调用activate,默认false用于循环内多次调用该接口,出循环后需再次调用activate;
Returns:
区域id - 成功添加返回传入的区域id,否则返回undefined
Type
String
Example
modelcut.addRegion( [[106.71, 29.60, 552.35],  [106.77, 29.59, 142.12],[...], .....], 'region-0' );

deactivate()

停止裁剪

dispose()

资源释放

removeRegion(id [, updateNow])

移除追加的裁剪区域;
Parameters:
Name Type Argument Default Description
id String 区域id;
updateNow Boolean <optional>
false 表示是否立即刷新裁剪效果 - true的话不需要用户自己调用activate,默认false用于循环内多次调用该接口,出循环后需再次调用activate;
Returns:
成功移除返回true,反之;
Type
Boolean