首页 > 解决方案 > Qt3D点线拾取?

问题描述

我一直在尝试在 Qt3D 中对网格进行点和线拾取。这是三角形拾取的工作版本,

auto renderSettings = new Qt3DRender::QRenderSettings(root);
renderSettings->pickingSettings()->setPickMethod(Qt3DRender::QPickingSettings::TrianglePicking);

auto entity = new Qt3DCore::QEntity(root);
auto picker = new Qt3DRender::QObjectPicker;
auto sphere = new Qt3DExtras::QSphereMesh;
entity->addComponent(picker);
entity->addComponent(sphere);

connect(picker, &Qt3DRender::QObjectPicker::clicked, [] 
  (Qt3DRender::QPickEvent* e) {
  auto p = dynamic_cast<Qt3DRender::QPickTriangleEvent*>(e);
  auto idx = p->triangleIndex();
});

但是,当我切换到点拾取或线拾取时,永远不会触发 clicked 事件。知道如何进行这项工作吗?提前致谢。

标签: qtqt3d

解决方案


推荐阅读