SALOME源码分析:View Model

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

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

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

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

一、整体流程

目前,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

三、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.

网络资料

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/368112.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文搞懂 java 线程池:ScheduledThreadPool 和 WorkStealingPool 原理

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

PHP宜邦家政服务管理系统-计算机毕业设计源码04426

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 宜邦家政服务管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用…

力扣hot100 -- 动态规划(上)

目录 ❄技巧 🌼爬楼梯 🍔杨辉三角 🌊打家劫舍 🐎完全平方数 🌼零钱兑换 🌼单词拆分 ❄技巧 动态规划dp-CSDN博客 👆花 5 分钟快速刷一遍 花 10 分钟浏览一下 线性DP 背包DP&#x1f447…

VS展示6个错误中的0个解决方法

左键点击展示6个错误中的0个 左键点击展示23个警告中的0个

国产强大免费WAF, 社区版雷池动态防护介绍

雷池WAF,基于智能语义分析的下一代 Web 应用防火墙 使用情况 我司于2023年4月23日对雷池进行测试,测试一个月后,于2023年5月24日对雷池进行正式切换,此时版本为1.5.1。 里程碑纪念 后续一直跟随雷池进行版本升级,当前…

怎样使用js技术实现Chrome投屏功能?

在Web前端技术中,直接控制浏览器窗口或标签页从主屏投屏到副屏(如PPT的演讲者模式)并不简单,而且直接控制浏览器窗口从主屏投屏到副屏的功能超出了Web标准的范畴,并且涉及到用户系统级别的设置和权限,因此不…

ETCD概述--使用/特性/架构/原理

ETCD概述 ETCD是一个高度一致的分布式键值存储, 它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据(高可用, 强一致性)​全局的配置服务中心. 本文将介绍其特性、相关操作和常见的应用场景. 如果想了解更多, 请查阅我的技术博客: https://dingyuqi.com 特性 …

C语言分支和循环(下)

C语言分支和循环(下) 1. 随机数生成1.1 rand1.2 srand1.3 time1.4 设置随机数的范围 2. 猜数字游戏实现 掌握了前面学习的这些知识,我们就可以写⼀些稍微有趣的代码了,比如: 写⼀个猜数字游戏 游戏要求: 电…

git常用命令速查表

Git相关概念简述 版本库:git在本地开辟的一个存储空间,一般在 .git 文件里。工作区(workspace): 就是编辑器里面的代码,我们平常开发直接操作的就是工作区。暂存区(index/stage):暂时存放文件的…

13. Revit API: Filter(过滤器)

13. Revit API: Filter(过滤器) 前言 在讲Selection之前,还是有必要先了解一下的过滤器的。 对了,关于查找一些比较偏的功能或者API的用法,可以这样查找 关键词 site:https://thebuildingcoder.typepad.com/ site是…

C语言 -- 函数

C语言 -- 函数 1. 函数的概念2. 库函数2.1 标准库和头文件2.2 库函数的使用方法2.2.1 功能2.2.2 头文件包含2.2.3 实践2.2.4 库函数文档的一般格式 3. 自定义函数3.1 函数的语法形式3.2 函数的举例 4. 形参和实参4.1 实参4.2 形参4.3 实参和形参的关系 5. return 语句6. 数组做…

react ts 封装3D柱状图,支持渐变

留档,以防忘记 bar3D.tsx import React, { useEffect, useRef, useState } from react; import * as echarts from echarts; import echarts/lib/chart/bar; import echarts/lib/chart/pictorialBar; import echarts/lib/component/grid; import echarts/lib/comp…

Centos7 安装老版本的chrome

查看自己linux是哪个centos版本 使用以下命令: cat /etc/centos-release我这里是centOS 7。然后在安装最新版的google-chrome时,总是会报错显示存在依赖环境的问题,使得无法安装成功chrome。 Package: google-chrome-stable (/google-chro…

使用 Rustup 管理 Rust 版本

文章目录 安装 Rustup配置镜像源安装 Rustup 安装 RustVS Code插件创建项目代码示例 Rust 官网:https://www.rust-lang.org/zh-CN/Crates 包管理:https://crates.io/Rust 程序设计语言:https://kaisery.github.io/trpl-zh-cn/通过例子学 Rust…

如何对低代码平台进行分类?

现在市面上的低代码平台就像雨后春笋一样冒出来,而且源源不绝,但总结下来,大致的也就以下三类。 一、 aPaaS多引擎类(有很多成熟引擎、做好东西要一起用) 这类产品包括:织信Informat(国内&…

使用 Smart-doc 记录 Spring REST API

如果您正在使用 Spring Boot 开发 RESTful API,您希望让其他开发人员尽可能容易地理解和使用您的 API。文档是必不可少的,因为它为将来的更新提供了参考,并帮助其他开发人员与您的 API 集成。很长一段时间以来,记录 REST API 的方…

uni-app上传失败超出文件限制解决方法-分包处理-预加载

分包背景 当你的上传出现一下错误: Error: 系统错误,错误码:80051,source size 2089KB exceed max limit 2MB [20240703 10:53:06][wxbf93dfb6cb3eb8af] [1.06.2405010][win32-x64] 说明你主包太大需要处理了,一下两种方法可以…

REGX52.H报错

keil cannot open source input file "REGX52.H": No such file or directory 选择下面这个目录 Keil\C51\INC\Atmel

SpringCloudAlibaba基础四 微服务调用组件OpenFeign

JAVA 项目中如何实现接口调用? 1)Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 …

C语言中的文件操作

1. 为什么使⽤⽂件 如果没有文件,我们写的程序的数据是存储在电脑内存中的,如果程序退出,内存回收,数据就丢失了,要将数据进行持久化的保存,我们可以使用文件。 2. 什么是⽂件 磁盘(硬盘&#…