The Inventor Mentor-第十章 处理事件和选择器

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

第十章 处理事件和选择器(Selection

 

本章目标

在阅读完本章节后,我们将有能力做下列事情:

 

l         解释Open Inventor如何处理输入事件。

l         使用Inventor内建的选择策略,选择场景中的物体。

l         创建事件回调节点,执行自定义选择策略。

l         高亮选择(Highlight selected)场景中的物体。

l         编写选择回调函数,当选择器列表发生变化后,允许应用程序执行特定的操作。

 

 

    本章将描述Open Inventor的事件模型。Inventor的事件模型为我们提供了一种简单的机制,通过这些机制,我们可以将像“按下键盘”和“移动鼠标”等这样的事件传递给场景数据库中的物体,以便这些物体可以处理这些事件。与窗口系统将事件传递到客户窗口中的做法类似,Inventor会将事件传递到数据库中能够处理它们的物体上。本章将要介绍的重要概念包括:Inventor的事件处理编程模型,以及SoXtRenderArea的用法,SoXtRenderArea是一个可以执行渲染操作和事件处理的窗口组件。本章还将详细讨论SoHandleEventAction类。同时也会对事件回调函数选择器节点高亮选择等这些概念进行探讨。

 

 

概述

    当用户在手柄盒(handle-box)操作器上点击鼠标,然后将物体拖动到一个新位置上时,Inventor是如何接收来自鼠标设备的输入,从而移动物体的呢?如果用户在一个不包含有任何物体的渲染区上点击鼠标会发生什么事情呢?Inventor是如何跟踪多个被用户选中的物体呢? 这些都是在我们开发交互式应用程序之前必须要回答的问题。

 

 

 

本章的完整翻译请到下面的地址中下载:

       The Inventor Mentor 英文原版。下载

       The Inventor Mentor 中文译本。下载

       The Inventor Mentor 例子代码。下载

 

 
Coin3D三维可视化教程1 上次介绍了Coin3D的安装在VS 2019 +QT下的配置,后面讲逐步学习这个库的使用,采用的主要材料的The Inventor Mentor中文版。书中的代码时在Mac平台的开发,这里采用的用的是Windows,SoXt是Coin3D在Mac平台上的界面绑定库,SoQt是与Qt的绑定库,SoWin是用MFC的绑定库。 上次安装的测试中,使用了SoQtExaminerViewer这个常用的交... 阅读详情

相关推荐

中文版《The Inventor Mentor》教程:深入Open Inventor技术

本文还有配套的精品资源,点击获取 简介:《The Inventor Mentor》中文版是一本详细教授Open Inventor技术的教程,适用于3D图形编程学习者。该书全面覆盖了Open Inventor的基础概念、架构、类库结构,以及如何在C++编程环境中使用Open Inventor进行3D场景构建、渲染交互。书中不仅包括关键知识点的讲解,还提供了源代码示例高级技...

weixin_42599558的博客 1347

The Inventor Mentor中文版

The Inventor Mentor 的中文版本

OpenInventor实现模型拖动

OpenInventorC++开发,实现了在三维场景里,鼠标拖动模型并可以进行旋转等操作。

The Inventor Mentor-关于这本书

The Inventor Mentor运用Open InventorTM 进行面向对象的3D图形开发,第二版Josie WerneckeOpen Inventor 框架工作组郝伟 译  关于这本书        The Inventor Mentor 这本书主要是面向图形编程人员应用程序开发人员,讲解面向对象的3D开发包-Open Inventor。Open

RobinHao的专栏 5290

The Inventor Mentor-第一章 综述

第一章 综述 本章目标       在阅读完本章节后,我们将可以做下列事情: l         认识组成Open Inventor工具包的几个关键组件。l         理解Open Inventor 与 OpenGL的关系。l         描述扩展Open Inventor 的几种方法。        本章将概要地阐述组成Open Inventor的几

RobinHao的专栏 4476

The Inventor Mentor-第十五章 拖拽器操作器

第十五章 拖拽器操作器 本章目标在阅读完本章节后,我们将有能力做下列事情:    l         将拖拽器与场景中的域或引擎相连接。l         解释拖拽器与操作器之间的区别。l         能够编写当交互操作开始或结束时、鼠标移动时、或拖拽器的某个域值发生变化时被调用的回调函数。l         在应用程序中允许用户利用操作器直接编辑场景中的节点

RobinHao的专栏 2055

Open Inventor 2023.1 for C++/.NET Crack

Open Inventor 是一个面向对象的工具包,它简化并将编写图形编程的任务抽象为一组易于使用的对象。这些对象的范围从以数据为中心的低级对象(如球体、摄像机、材质、光源组)到用于网格可视化体积渲染的高级对象。Open Inventor 中的基本概念是“场景数据库”,它定义了要在应用程序中使用的对象。

控件与插件之大全 938

The Inventor Mentor-附录A:C程序员面向对象编程入门

附录A:C程序员面向对象编程入门     Open Inventor是一个用于开发3D程序的面向对象工具包。它虽然是用C++开发的,但它同时还包含有C语言编程接口。这本书提到了许多像类、子类、其它面向对象编程的概念。本书的所有例子都是用C++编写的。如果在阅读本书之前,读者已经对“类”面向对象的编程方法有了一定的了解,那么您将可以从本书中学到尽可能多的东西(You will get t

RobinHao的专栏 1765

用OpenInventor实现的NeHe OpenGL教程-第十二课

 用OpenInventor实现的NeHe OpenGL教程-第十二课         NeHe这节课主要讨论OpenGL的显示列表功能。OpenGL的显示列表是加速OpenGL性能的一种重要的手段。但在OpenInventor中,我们根本就不需要关心是否使用显示列表,因为OpenInventor内部有缓存功能,而这个缓存功能就是使用显示列表来实现的。所以我们只需要实现程序逻辑

RobinHao的专栏 1912

The Inventor Mentor翻译计划

The Inventor Mentor翻译计划        目前关于Open Inventor(以下简称OIV)的开发资料不多,而且都是英文资料。主要的开发书籍有三本,其中最重要的是 Josie Wernecke编写的The Inventor Mentor。这本书是OIV的主要入门书籍。所有学习使用OIV的用户都应该首先阅读此书。通过阅读此书,用户可以循序渐进地掌握OIV的基本开发过程。

RobinHao的专栏 3184

The Inventor Mentor[cn]

The Inventor Mentor[cn] 英文版的完整中文版,是一本值得拥有的学习Open Inventor的教程,文件中包括例子,源代码

The inventor mentor

运用Open Inventor进行面向对象的三维图形开发,第二版

The Inventor Mentor[cn] The Inventor Mentor[cn]

The Inventor Mentor[cn] The Inventor Mentor[cn]

Open Inventor 简介

Open Inventor 简介 简介Open Inventor(以下简称OIV)是SGI公司开发的基于OpenGL的面向对象三维图形软件开发包。使用OIV开发包,程序员可以快速、简洁地开发出各种类型的交互式三维图形软件。OIV具有平台无关性,它可以在Microsoft Windows、Unix、Linux等多种操作系统中使用。OIV允许使用C、C++、Java、DotNet多种编程

RobinHao的专栏 2万+

Open Inventor练习-SoRayPickActionSoMouseButtonEvent点选操作

SoRayPickAction是三维物体射线选择操作,SoPickedPoin用来存放选择的坐标,SoMouseButtonEvent用来鼠标操作信息处理。例子中获得鼠标点击物体的类型坐标位置信息,在Console控制台窗口中输出。代码如下。 #define COIN_DLL #define SOWIN_DLL // 加载COIN库文件 #ifdef _DEBUG #pra...

huozheleisi 337

The Inventor Mentor-第三章 节点与组

第三章 节点与组 本章目标在阅读完本章节后,我们将可以做下列事情: l         利用形体、属性、组等节点创建图形场景。l         解释节点如何继承上层节点的属性数据。l         理解隔离节点(separator)的重要性。l         解释在场景中使用共享节点实例的优势。l         定义“路径”术语,并且解释路径存在的必要性

RobinHao的专栏 2780

【亲测免费】 开源项目Coin3D深度解析及新手指南

开源项目Coin3D深度解析及新手指南 Coin3D,全称为Coin Open Inventor API实现,是一个基于OpenGL的强大三维图形库。本项目忠实于Open Inventor 2.1版本的API设计,同时保持独立开发,不与SGI的原始Open Inventor代码共享任何部分,除了那些由API设计引导的相似之处。Coin3D采用C++编写,它是一个场景图(scene graph)为基...

gitblog_01236的博客 1812

The Inventor Mentor-第十七章 在Inventor中使用OpenGL

第十七章在Inventor中使用OpenGL 本章目标在阅读完本章节后,我们将有能力做下列事情: l         创建Inventor回调节点,在回调函数中调用OpenGL库函数。l         了解Inventor是如何使用影响OpenGL的状态变量l         编写一个同时使用Inventor与OpenGL的程序,并在程序中使用SoGLRenderA

RobinHao的专栏 2331
上一篇: The Inventor Mentor-第九章 应用动作
下一篇: The Inventor Mentor-第十一章 文件格式
RobinHao
博客等级 码龄25年 234粉丝 55原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值