5.3.1 元素在视图中的可见性

视图中记录了所有可见的元素。平台提供了隐藏视图中构件的接口,主要在BPViewController类中。在BPViewController类中,接口为setHiddenGraphics。在此接口中,可传入不想在视图中显示的构件key值,视图将不再绘制这些传入的构件,达到隐藏构件的目的。

表5-2 视图控制常用接口

方法 描述
BPViewController List<BPGraphics^> getHiddenEntities(BPViewportCR) 获取隐藏实体id集合
BPViewController clearHiddenGraphics() 清理活动视口中隐藏实体集合
BPViewController setHiddenGraphics(List<BPGraphics^> , bool ) 在当前活动视口中隐藏实体集合

通过提供的这些接口,可在指定视口批量显示或隐藏某些构件,并且实时获取被隐藏的构件。

5.3.2 视图显示

在三维视图中,通过三维导航工具可以任意旋转该视图,对于打开的视图可以设置背景色呈现不同的视图效果,根据视图显示的不同可以设置视图原点及比例等。在API中,可以通过以下接口来实现视图显示控制。

表5-3 视图显示控制接口列表

方法 描述
BPViewport System::Drawing::Color backgroundColor 获取/设置视口视图的背景颜色
BPViewport UInt32 getContrastToBKGColor() 获取视口视图的背景颜色的对比色,避免颜色和背景色一样。
BPViewport p3d::GeRotMatrix getRotMatrix() 获取模型投影到视口视图的矩阵常,不能修改视图本身的矩阵。
BPViewport p3d::GePoint3dCR getOrigin() 获取视口视图原点
BPViewport p3d::GePoint3dCR getDelta() 获取视口视图区域大小
BPViewport setRotMatrix(p3d::GeRotMatrixCR) 设置视口视图矩阵
BPViewport setOrigin(p3d::GePoint3dCR) 设置视口视图原点
BPViewport setDelta(p3d::GePoint3dCR) 设置视口视图大小
BPViewport p3d::GePoint3dCP getScale() 获取视口视图的比例,视口视图的三个方向的投影比例,一般情况下一致。
BPViewManager BPStandardView isStandardViewRotation(p3d::GeRotMatrixCR , bool) 判断视口视图的投影矩阵是否为标准视图的投影矩阵
BPViewManager ::p3d::P3DStatus setAllow3DManipulations(int , const BPRotateAxisOption) 对指定的视口做3D旋转操控的控制
BPViewManager ::p3d::P3DStatus getAllow3DManipulations(int , OUT BPRotateAxisOption) 对指定的视口做3D旋转操控的控制

其中在BPViewManager对3D视图进行控制的接口中,BPRotateAxisOption中对应的操作为enRotateNone->不可以做任何3D旋转,enRotateAxisX->仅可以围绕X轴进行3D旋转,enRotateAxisY->仅可以围绕X轴进行3D旋转,enRotateAxisZ->仅可以围绕X轴进行3D旋转,enRotateAny->可以围绕任意轴做3D旋转。