SALOME源码分析:View Model

作为一款开源的CAx(CAD/CAE/CAM)软件集成平台,为了实现各个Module支持不同的数据显示与交互方案,出于扩展性的考虑,SALOME引入了View Model,用以支持OpenGLOCCVTKParaViewQwt等数据显示与交互实现。

本文将以OCCViewerSVTK为例,来阐述SALOME中的View Model相关内容。

注1:限于研究水平,分析难免不当,欢迎批评指正。

注2:文章内容会不定期更新。

一、整体流程

以LightApp_Application为例,当SALOME启动之后,每当激活某个Module时,最终会触发函数LightApp_Application::activateModule( const QString&),

/*!Activate module by \a modName*/
bool LightApp_Application::activateModule( const QString& modName )
{
  // ... ...

  updateWindows();
  updateViewManagers();

  // ... ...
}

/*!
  Updates view managers
*/
void LightApp_Application::updateViewManagers()
{
  QStringList lst;
  currentViewManagers( lst );

  for ( QStringList::const_iterator it = lst.begin(); it != lst.end(); ++it )
    getViewManager( *it, true );
}

可以看到,在SALOME中,每个module是依据ViewManager/ViewModel的类型名字来获取对应的ViewManager/ViewModel。

目前,SALOME提供了对OpenGLOCCVTKParaViewQwt等显示方式的支持。

Table 1 SALOME内置ViewModel
1

GLViewer_Viewer

QGLWidget
2

Plot2d_Viewer

SPlot2d_Viewer

QwtPlot
3

QxScene_Viewer

GraphicsView_Viewer

QGraphicsView
4

PVViewer_Viewer

PV3DViewer_ViewModel

SPV3D_ViewModel

pqTabbedMultiViewWidget
5PyViewer_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

2.1 相关组件

2.2 关键流程

三、SVTK

3.1 相关组件

3.2 关键流程

四、扩展与演练:ACISE集成SALOME OCCViewer/SVTK

参考资料 

  • Erich Gamma. Design Patterns:elements of reusable object-oriented software. Addison Wesley, 1994.

  • Joseph Ingeno. Software Architect's Handbook. Packt Publishing, 2018.

网络资料

SALOMEicon-default.png?t=N7T8https://www.salome-platform.org/

Acise: A CAx Industrial Software Ecologyicon-default.png?t=N7T8https://blog.csdn.net/qq_26221775/article/details/133831665?spm=1001.2014.3001.5502

大型CAx(CAD/CAE/CAM)软件研发中的职责编排icon-default.png?t=N7T8https://blog.csdn.net/qq_26221775/article/details/136975550?spm=1001.2014.3001.5502

The view model in Aciseicon-default.png?t=N7T8https://blog.csdn.net/qq_26221775/article/details/139212214?spm=1001.2014.3001.5502

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值