# Hoops **Repository Path**: Macro1995/hoops ## Basic Information - **Project Name**: Hoops - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-09 - **Last Updated**: 2026-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HOOPS 3D 框架项目 ## 项目概述 HOOPS是一个强大的3D图形开发框架,提供跨平台的3D可视化、CAD数据交换和高级渲染功能。本项目包含HOOPS框架的示例应用程序,特别是基于MFC的沙盒应用程序,展示了如何使用HOOPS API进行3D模型加载、渲染和交互。 ## 项目结构 ``` hoops/ ├── samples/ │ └── mfc_sandbox/ # MFC沙盒应用程序 │ ├── CHPSApp.cpp/h # 应用程序主类 │ ├── CHPSFrame.cpp/h # 主框架窗口 │ ├── CHPSView.cpp/h # 3D视图窗口 │ ├── CHPSDoc.cpp/h # 文档类 │ ├── CHPSSegmentBrowserPane.cpp/h # 段浏览器面板 │ ├── CHPSModelBrowserPane.cpp/h # 模型浏览器面板 │ ├── CHPSPropertiesPane.cpp/h # 属性面板 │ ├── CHPSConfigurationPane.cpp/h # 配置面板 │ └── ... # 其他辅助类 ├── bin/ │ └── win64_v142d/ # 二进制库文件 └── README.md ``` ## MFC Sandbox 运行逻辑 ### 系统架构 MFC沙盒应用程序基于MFC文档/视图架构,集成了HOOPS 3D图形引擎,支持多种CAD文件格式的加载和显示。 ### 启动流程 ```mermaid graph TD A[MFC启动] --> B[CHPSApp::InitInstance] B --> C[初始化HPS::World] C --> D[设置资源目录] D --> E[初始化MFC组件] E --> F[注册文档模板] F --> G[处理命令行参数] G --> H[创建主框架窗口] H --> I[CHPSFrame::OnCreate] I --> J[创建Ribbon界面] J --> K[创建停靠面板] K --> L[CHPSView::OnInitialUpdate] L --> M[创建HPS Canvas] M --> N[设置默认场景] N --> O[进入消息循环] ``` ### 文件加载流程 ```mermaid graph TD A[用户选择文件] --> B[CHPSDoc::OnOpenDocument] B --> C[获取文件扩展名] C --> D{文件类型判断} D -->|HSF| E[ImportHSFFile] D -->|STL| F[ImportSTLFile] D -->|OBJ| G[ImportOBJFile] D -->|点云| H[ImportPointCloudFile] D -->|CAD文件| I[ImportExchangeFile] E --> J[创建进度对话框] F --> J G --> J H --> J I --> J J --> K[异步导入文件] K --> L[更新视图] L --> M[初始化浏览器面板] ``` ### 交互处理流程 ```mermaid graph TD A[用户输入] --> B[Windows消息] B --> C[CHPSView事件处理] C --> D[转换为HPS事件] D --> E[注入到Canvas事件分发器] E --> F[操作器处理] F --> G{操作器类型} G -->|轨道| H[OrbitOperator] G -->|平移| I[PanOperator] G -->|缩放| J[ZoomOperator] G -->|选择| K[SelectOperator] H --> L[更新相机] I --> L J --> L K --> M[高亮选中对象] L --> N[更新显示] M --> N ``` ### 渲染模式切换 ```mermaid graph TD A[用户选择渲染模式] --> B{渲染类型} B -->|平滑| C[OnModesSmooth] B -->|隐藏线| D[OnModesHiddenLine] B -->|简单阴影| E[OnModesSimpleShadow] B -->|眼罩光照| F[OnModesEyeDome] B -->|固定帧率| G[OnModesFrameRate] C --> H[设置Phong渲染模式] D --> I[设置FastHiddenLine模式] E --> J[启用/禁用简单阴影] F --> K[启用/禁用眼罩光照] G --> L[设置固定帧率] H --> M[更新Canvas] I --> M J --> M K --> M L --> M ``` ## 关键组件说明 ### CHPSApp (应用程序类) - 负责应用程序初始化和资源管理 - 创建和管理HPS::World实例 - 处理文件关联和最近文件列表 ### CHPSFrame (主框架窗口) - 创建和管理主界面布局 - 管理Ribbon界面和停靠面板 - 处理应用程序级别的命令和消息 ### CHPSView (视图类) - 管理HPS Canvas和3D视图 - 处理用户输入和交互操作 - 管理渲染模式和显示选项 ### CHPSDoc (文档类) - 管理3D模型数据 - 处理文件导入和导出 - 维护模型和CADModel对象 ### 停靠面板 - **段浏览器(CHPSSegmentBrowserPane)**: 显示和管理场景图结构 - **模型浏览器(CHPSModelBrowserPane)**: 显示和管理模型组件树 - **属性面板(CHPSPropertiesPane)**: 显示和编辑选中对象的属性 - **配置面板(CHPSConfigurationPane)**: 管理CAD模型配置 ## 支持的文件格式 ### 基本格式 - HSF (HOOPS Stream Format) - STL (Stereolithography) - OBJ (Wavefront Object) - 点云格式 (PTX, PTS, XYZ) ### CAD格式 (通过Exchange模块) - STEP (STP, STEP) - IGES (IGS, IGES) - SolidWorks (SLDPRT, SLDASM) - CATIA (CATPart, CATProduct) - Inventor (IPT, IAM) - Pro/ENGINEER (PRT, ASM) - Parasolid (X_T, X_B) - JT (JT) - DWG/DXF - 以及更多... ## 开发环境 - Visual Studio 2019或更高版本 - Windows 10或更高版本 - HOOPS 3D框架库 ## 构建与运行 1. 安装Visual Studio 2019或更高版本 2. 确保HOOPS库文件已正确配置 3. 打开解决方案文件 `hps_mfc_sandbox_v142.sln` 4. 选择适当的配置 (Debug/Release) 5. 构建并运行项目 ## 许可证 本项目使用HOOPS 3D框架,请确保遵守相关许可证条款。 ## 贡献指南 1. Fork 本仓库 2. 新建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交Pull Request ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交Issue - 发送邮件至项目维护者 ---