作为一款开源的CAx(CAD/CAE/CAM)软件集成平台,为了实现各个Module支持不同的数据显示与交互方案,出于扩展性的考虑,SALOME引入了View Model,用以支持OpenGL、OCC、VTK、ParaView、Qwt等数据显示与交互实现。
本文将以OCCViewer、VTKViewer为例,来阐述SALOME中的View Model相关内容。
注1:限于研究水平,分析难免不当,欢迎批评指正。
注2:文章内容会不定期更新。
一、整体流程
目前,SALOME提供了对OpenGL、OCC、VTK、ParaView、Qwt等显示方式的支持。
| 1 | GLViewer_Viewer | QGLWidget | |
| 2 | Plot2d_Viewer SPlot2d_Viewer | QwtPlot | |
| 3 | QxScene_Viewer GraphicsView_Viewer | QGraphicsView | |
| 4 | PVViewer_Viewer PV3DViewer_ViewModel SPV3D_ViewModel | pqTabbedMultiViewWidget | |
| 5 | PyViewer_Viewer | PyEditor | |
| 6 | OCCViewer_Viewer | V3d_View | OCCViewer_ViewFrame,OCCViewer_ViewPort3d | 
| SOCC_Viewer | SOCC_ViewWindow,OCCViewer_ViewPort3d,SOCC_Prs | ||
| 7 | VTKViewer_Viewer | vtkRenderWindow | VTKViewer_ViewWindow,VTKViewer_RenderWindow | 
| SVTK_Viewer | SVTK_ViewWindow,SVTK_RenderWindowInteractor,SVTK_Prs | 
二、OCCViewer
三、VTKViewer
四、扩展与演练:ACISE集成SALOME OCCViewer\VTKViewer
参考资料
-  Erich Gamma. Design Patterns:elements of reusable object-oriented software. Addison Wesley, 1994. 
-  Joseph Ingeno. Software Architect's Handbook. Packt Publishing, 2018. 
网络资料
SALOME https://www.salome-platform.org/
https://www.salome-platform.org/