
由于工作需要,我开始学习OCC(Open Cascade)。在网上查找资料时,大多数资源要么是文字教程,要么是YouTube视频,感觉没有什么适合快速上手的方式。
我需要一个可以通过修改代码就能直观看到结果的学习方式。
在GitHub上我发现了一位大佬的仓库(链接:OcctImgui),这个仓库基于ImGUI实现了OCC的基础功能。灵感来自“最快的学习方法就是自己学了再教别人”,于是决定发这篇博客,督促自己整理并发布一个OCC快速上手的系列教程。
在开始之前,我们需要了解一些基本概念:
1. 什么是OCC?
OCC(Open Cascade)是一个开源的CAD(计算机辅助设计)软件开发平台,提供强大的3D建模、几何处理和可视化工具。它广泛应用于工程设计、制造业以及其他涉及复杂几何建模的领域。
github:https://github.com/Open-Cascade-SAS/OCCT
2. 什么是ImGUI?
ImGUI(Immediate Mode GUI)是一种每帧动态生成界面的方式。与传统的GUI系统不同,ImGUI不保存界面状态。每次渲染时,所有的界面元素都被重新构建,允许用户快速生成、修改和更新界面。
3. 什么是Dear ImGUI?
Dear ImGUI是一个轻量级、开源的即时模式GUI库,专注于快速开发工具和调试界面。它的设计目标是提供一种简单、快速的方式来实现各种交互式界面,尤其适用于开发调试工具和内嵌式应用。
github:https://github.com/ocornut/imgui
掌握了这些基础知识后,我们就可以开始学习了!
首先,我将基于这位大佬的仓库复现相关内容,并编写一个动态创建场景的代码。为了便于写教程,我手动实现了一个继承自baseScene的动态场景创建框架(只需继承baseScene并编写scene即可)。完成后,场景会自动在右侧框中显示,方便后续复习和教学。如下图只需要在displayScene中编写想要学习的代码就可以自动在右边显示,点击即可渲染了。

效果图: 
补充代码
- 场景基类: 方便写之后教学页面的
#include "pch.h"
#include "../Log.h"
#include <AIS_InteractiveContext.hxx>
#include <AIS_ViewController.hxx>
/**
* @class BaseScene
* @brief 场景基类,定义了场景的基本接口。
*
* 该类是一个抽象基类,提供了一个纯虚函数 displayScene(),要求所有派生类实现具体的场景显示逻辑。
*/
class BaseScene {
public:
BaseScene() = default;
/**
* @brief 析构函数,确保派生类正确销毁。
*/
virtual ~BaseScene() = default;
/**
* @brief 纯虚函数,派生类需实现具体的场景显示逻辑。
*
* @param context Open CASCADE 交互上下文,提供显示场景所需的 API。
*/
virtual void displayScene(Handle(V3d_View)& view, Handle(AIS_InteractiveCont

最低0.47元/天 解锁文章
3947

被折叠的 条评论
为什么被折叠?



