场景操作
接口列表
| 接口名称 | 说明 |
|---|---|
| 可视化对象操作 | 获取、添加、删除可视化对象,例如:模型、批注、测量、剖切等 |
| 选中操作 | 可视化对象的选中操作 |
| 显隐控制 | 设置可视化对象的显示获隐藏 |
| 背景操作 | 获取背景对象以及设置背景 |
可视化对象操作
可视化对象操作需要通过基础接口中的shapes进行
//获取所有的Model对象
let models = shapes.getShapes(M3D.Shapes.ShapeType.MODEL);
//获取所有批注对象
let annotations = shapes.getShapes(M3D.Shapes.ShapeType.ANNOTATION_NOTE);
//获取多引线批注
let multiLeaderAnnotations = shapes.getShapes(M3D.Shapes.ShapeType.MULTILEADER_ANNOTATION_NOTE);
//获取手绘批注
let gestures = shapes.getShapes(M3D.Shapes.ShapeType.THREED_GESTURE_NOTE);
//获取所有测量
let measures = shapes.getShapes(M3D.Shapes.ShapeType.MEASURE_BASE);
//获取所有剖切,当前场景创建的剖切使用SECTION获取,svlx或在线视图中读取的剖切使用SECTION_PLANE获取
let sections = shapes.getShapes(M3D.Shapes.ShapeType.SECTION);
let sectionPlanes = shapes.getShapes(M3D.Shapes.ShapeType.SECTION_PLANE);
//获取所有PMI
let pmis = shapes.getShapes(M3D.Shapes.ShapeType.PMI);
//获取所有视图
let modelViews = shapes.getShapes(M3D.Shapes.ShapeType.SHAPE_MODELVIEW);
//获取单个可视化对象
let shape = shapes.getShape(id);
let shape = shapes.getShape(id,shapeType);
//添加可视化对象
shapes.addShapes(shapeList);
shapes.addShape(shape);
//删除可视化对象
shapes.removeShape(id);
shapes.removeShapes(isList);
//清空可视化对象,无参数即表示清空所有类型的可视化数据
shapes.clearShapes();
shapes.clearShapes(shapeType);
//通过ObjectId获取可视化对象
let shape = shapes.getShapeByObjectId(id);
let shape = shapes.getShapeByObjectId(id,shapeType);
//通过PMIId获取PMI
let pmi = shapes.getPMIByPMIId(PMIId);
选中操作
选中操作需要通过基础接口中的selector进行
//获取选中的对象
let shapes = selector.getAll();
//获取第一个选中的对象
let shape = selector.get();
//获取选择器中某个类型的数据
let shapeList = selector.getShapesByType(shapeType);
//添加选中
selector.add(shapeId);
selector.add(shape);
selector.add(shapeList);
//移除选中
selector.remove(id);
selector.remove(shape);
selector.remove(shapeList);
//清空选择器
selector.clear();
//获取选中的数量
selector.count();
//判断可视化对象是否已被选中
selector.exist(shape);
selector.exist(id);
显隐控制
显隐控制需通过基础接口中的visibles进行
//添加可见对象
visibles.add(shape);
visibles.add(shapeList);
//移除可见对象
visibles.remove(shape);
visibles.remove(shapeList);
visibles.remove(shapeType);
visibles.remove(id,shapeType);
//10.3.36及以后版本,清空可见对象,清空后需调用scene的refresh方法更新视口
visibles.clear();
scene.refresh();
//获取可见对象
visibles.get(id);
visibles.get(id,shapeType);
//获取所有可见对象,返回值为数组,index为ShapeType类型值,value同样为数组,value数组中index为shapeId,value为shape对象
visibles.getAll();
//获取可见对象数量
visibles.count();
背景操作
背景操作需通过scene获取背景对象,然后对其进行操作
//获取背景对象
let background = scene.getBackground();
//设置背景类型,类型为M3D.Shapes.BackgroundType,
//BackgroundType.ColorBackground、BackgroundType.ImageBackgournd、BackgroundType.SkyboxBackgournd
background.setType(type);
//设置背景类型后需调用不同的接口去设置使用哪种类型,
//设置为背景颜色需调用
background.setUseColor(true);
//设置为背景图片需调用
background.setUseImage(true);
//设置为天空盒需调用
background.setUseSkyBox(true);
//获取背景类型
background.getType();
//设置背景顶部颜色,类型为M3D.M3DMath.Color
//Color构造函数参数为r,g,b,a,类型为取值范围为0-1的数字
let color = new M3D.M3DMath.Color(1,1,1,1);
background.setTopColor(color);
//设置背景底部颜色,类型为M3D.M3DMath.Color
let color = new M3D.M3DMath.Color(0,0,0,1);
background.setBottomColor(color);
//获取背景顶部颜色
background.getTopColor();
//获取背景底部颜色
background.getBottomColor();
//设置背景图片地址
background.setImage(imagePath);
//清空天空盒图片
background.clearSkyBoxImage();
//添加天空盒图片,天空盒图片需由六张图片组成
//依次添加+X方向、-X方向、+Y方向、-Y方向、+Z方向、-Z方向的图片地址
background.addSkyBoxImage(imagePath);
//背景参数设置完毕后,调用更新方法
scene.refresh();