推荐:将 NSDT场景编辑器 加入你的3D开发工具链
介绍
鼠标拾取是一种常用的直观操作,用于与各种 3D 图形应用程序中的 3D 场景进行交互。CHAI3D 提供了一些基本功能来检测对象是否已被选中。鼠标选择过程需要首先设置碰撞记录器和所需的碰撞设置。下面的清单说明了一个基本示例。
using namespace chai3d;
cCollisionRecorder recorder;
cCollisionSettings settings;
// detect for any collision between mouse and scene
bool hit = camera->select(x, y, windowWidth, windowHeight, recorder, settings);
碰撞记录器首先是空的,并累积位于鼠标指针下方的选定对象。为每个碰撞事件返回的信息存储在 cCollisionEvent 结构中。这样的结构将包含指向对象的指针、鼠标点击的3D位置信息、选定的三角形(cMesh)和表面法线。