目 录
第1章基于MFC的三维CAD应用程序框架结构分析
1.1MFC应用程序的文档/视图结构
1.1.1文档/视图结构概述
1.1.2文档与多个视图的关联
1.1.3文档模板及主要组成类
1.2实例分析--三维CAD示例软件STLViewer
1.3而不见STLViewer的程序框架
1.4STLViewer中类的层次设计及软件模块结构划分
1.5建立和使用动态链接库
1.5.1动态链接库的基本概念
1.5.2基于MFC的动态链接库本章相关程序
第2章几何基本工具库的开发
2.1点.矢量和齐次变换矩阵
2.1.1点
2.1.2矢量
2.1.3齐次坐标与齐次变换矩阵
2.2设计点.矢量和齐次变换矩阵类
2.2.1点类CPoint3D
2.2.2矢量类CVector3D
2.2.3变换矩阵类CMatrix3D
2.3三维图形的几何变换
2.3.1三维齐次变换矩阵
2.3.2平移变换
2.3.3旋转变换/绕空间任意轴的旋转变换函数的实现
2.3.4几何缩放
2.3.5对称变换/沿空间任意平面的对称变换函数的实现
2.4设计几何基本工具库GeomCalc.d
2.4.1GeomCalc.dll中的输出类与输出函数
2.4.2创建几何基本工具库GeomCalc.dll的步骤
2.4.3使用GeomCalc.dll
2.5有关源程序代码
2.5.1文件CadBase.h
2.5.2文件CadBase.cpp
2.5.3文件CadBasel.cpp本章相关程序
第3章基于MFC的OpenGLWindows程序的创建
3.1OpenGL介绍
3.2在Windows环境下使用OpenGL
3.2.1OpenGL的函数库
3.2.2OpenGL与GDl
3.2.3渲染场境
3.2.4像素格式
3.3OpenGLMFC应用程序创建实例
3.3.1创建一个应用程序框架
3.3.2修改视图类CGLView
3.3.3使用OpenGL的双缓存技术为应用程序增加动画效果
3.4程序清单
3.4.1文件GLView.h
3.4.2文件GLView.cpp本章相关程序
第4章封装OpenGL功能的C++类的设计
4.1封装OpenGL的C++类的设计
4.2照相机类GCamera的设计
4.2.1视点坐标系和视图变换
4.2.2投影变换与视景体
4.2.3视口变换
4.2.4设计照相机类GCamera
4.3类COpenCLDC
4.4修改类CGLView
4.5运行应用程序
4.6源程序清单
4.6.1类GCamera的声明代码
4.6.2类GCamera的实现代码
4.6.3类COpenGLDC的声明代码
4.6.4类COpenGLDC的实现代码
4.6.5类CGLView的声明代码
4.6.6类CGLView的实现代码本章相关程序
第5章基于OpenGL的CAD图形工具库的设计
5.1创建动态链接库glContext.dll
5.2类GCamera的功能增强
5.2.1选择典型的观察视图
5.2.2景物平移
5.2.3景物缩放
5.2.4使用OpenGL的选择模式
5.3类COpenGLDC功能的增强
5.3.1实现和Windows窗口的关联
5.3.2定义光源
5.3.3定义颜色
5.3.4图形绘制函数
5.3.5选择模式
5.4增加类CGLView中的功能
5.5glContext类的输出和调用
5.6源程序清单
5.6.1文件Camera.h(类GCamera)
5.6.2文件Camem.cpp(类GCamera)
5.6.3文件OpenGLDC.h(类COpenGLDC.CGLView)
5.6.4文件OpenGLDC.cpp(类OpenGLDC)
5.6.5文件GLView.cpp(类CGLView)
本章相关程序
第6章CAD应用程序的几何内核模块的设计
6.1几何对象类的设计
6.1.1类的层次设计
6.1.2几何对象基本类CEntity
6.1.3三角面片对象类CTriChip
6.1.4STL几何模型类CSTLModel
6.1.5高级几何模型类CPad
6.2串行化(Serialize)实现文档存取功能
6.2.1为什么要使用串行化
6.2.2CArchive类
6.2.3串行化类的设计步骤
6.2.4CObArray的Serialize()函数
6.2.5应用程序的文档串行化实例剖析
6.3虚拟函数
6.3.1虚拟函数与多态性
6.3.2纯虚拟函数
6.3.3实现CPart模型的OpenGL显示
6.4建立几何内核库GeomKernel.dll
6.5程序清单
6.5.1文件Enfity.h
6.5.2文件Entity.cpp
本章相关程序
第7章CAD应用程序STLViewer的模块化实现
7.1STLViewer的模块结构
7.2创建应用程序框架
7.3修改应用程序框架
7.3.1增加界面资源
7.3.2修改框架类CMainFrame
7.3.3修改文档类CSTLViewerDoc
7.3.4修改视图类CSTLViewerView
7.4运行STLViewer.exe
7.5源程序清单
7.5.1文件MainFrm.h
7.5.2文件MainFrm.cpp
7.5.3文件STLViewerDoc.h
7.5.4文件STLViewerDoc.cpp
7.5.5文件STLViewerView.h
7.5.6文件STLViewerView.cpp
本章相关程序
第8章增强CAD应用程序的界面功能
8.1STLViewer的界面增强
8.2工具栏的排列
8.3使用快捷菜单
8.4创建类似VisualStudio风格的浮动窗口
8.4.1控制条与停靠栏
8.4.2开发具有VisualStudio风格的浮动窗口
8.4.3CTabCtrl控件的功能增强
8.4.4建立界面工具库DockTool.dll
8.5使用树型视图CtreeView显示和管理文档数据
8.5.1树型视图与树型控件
8.5.2在STLViewer中创建CPartTreeView
8.5.3树型视图CPartTreeView与文档的关联/文档多视图
8.5.4在树型控件中使用图标
8.5.5使用树型视图控件显示文档中几何模型的结构和属性
8.5.6通过树型视图控件对文档数据进行操作
本章相关程序
第9章基于OpenGL的CAD软件拾取功能的实现
9.1使用OpenGL选择模式
9.1.1OpenGL的三种操作模式
9.1.2使用选择模式
9.2一个OpenGL选择模式的应用程序
9.3OpenGL的选择功能与CAD应用程序的集成
9.3.1定义选择视景体/修改类CCamera
9.3.2对选择过程的操作/修改类COpenGLDC
9.3.3自动给对象命名尉类CSTLModel的修改
9.3.4在STLViewer中调用拾取功能
9.
展开