第五章场景绘制与交互.docVIP

  • 0
  • 0
  • 约3.8万字
  • 约 65页
  • 2019-10-21 发布于湖北
  • 举报
第五章 场 景 绘 制 与 交 互 Intra3D 2.0体系结构中的前三层均与窗口系统无关,但是图形不能画在脑子里,交互不能靠嘴巴来实现。第四层“绘制与交互层”必须与窗口系统相关。 本章重点讲述场景视窗程序SceneView与简单视窗程序Window3D的设计。SceneView用于构造交互式3D应用软件的主界面,Window3D用于构造3D对话。 5.1 场景视窗SceneView的设计 三维图形的交互式绘制是程序员面临的主要困难之一。Intra3D场景视窗程序SceneView封装了交互式绘制的所有细节,如消息处理、场景节点的遍历绘制、多重采样消锯齿、鼠标交互等。SceneView为开发者提供简洁的编程接口,可以快速创建交互式3D应用程序框架。 C++类库中的SceneView程序见Intra3D-DLL\Include\Layer4\SceneView.h和Intra3D-DLL\Layer4\SceneView.cpp。COM库中的程序见Intra3D-COM\Layer4\ SceneView.h和SceneView.cpp。 由于SceneView与窗口相关,使得类库中的SceneView程序与COM库中的程序有些差别。COM对象SceneView更确切地应该称为ActiveX控件,它具有方法、事件和属性。本节先分四小节论述类SceneView的设计,再论述ActiveX控件SceneView的设计。 类SceneView是Visual C++ MFC中CView的派生类,其声明如下: class SceneView : public CView { public: SceneView(void; ~SceneView(void; DECLARE_DYNCREATE(SceneView //----------------------------------- 用于设置场景绘制、动画的函数 ------------------------------------- void SetClearColor(float red,float green,float blue,float alpha=0.0f; // 设置背景颜色 void GetClearColor(float *red, float *green, float *blue, float *alpha; // 获取背景颜色 void SetSceneRoot(SceneNode * node; // 设置当前场景的跟节点 SceneNode *GetSceneRoot(void; // 获取当前的场景的跟节点 void EnableAnimate(void; // 使场景处于动画状态 void DisableAnimate(void; // 停止场景的动画 BOOL IsAnimateEnabled(void; // 检查场景是否处于动画状态 void EnableAntialiasing(int jitterTimes; // 启用多重采样消锯齿 void DisableAntialiasing(void; // 停止多重采样消锯齿 void GetAntialiasingInfo(BOOL *bAntialiasing, int *jitterTimes; // 获取消锯齿的信息 virtual void InitScene(void; // 用户定义的场景初始化函数 virtual void ControlAnimate(void; // 用户定义的动画函数,控制各节点的运动 void Run(void; // 执行绘制与动画 BOOL SaveAsBMP(char *strFile; // 将当前窗口的 3D 图形保存为 BMP 图像 public: //------------------------------------------ 用于交互的函数 ---------------------------------------- void SelectNode(char *name; // 拾取当前场景的某个节点 void SelectNode(SceneNode * node; // 拾取当前场景的某个节点 void UnselectNode(void; // 取消已拾取的节点 void SetMouseInteraction(int type; // 设置鼠标交互的方式 int GetMouseInteraction(void; // 获取鼠标交互的方式 //---------------------------- SceneView 标准 3D 交互,有对应的工具条 ----------------------------- af

文档评论(0)

1亿VIP精品文档

相关文档