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旋转。