Я изменяю геометрию QEntity следующим образом:
void Entity::applyGeometry(Qt3DRender::QGeometryRenderer *gr)
{
// searching old geometry
Qt3DCore::QComponent* rc = nullptr;
for(Qt3DCore::QComponent* c: components())
{
rc = qobject_cast<Qt3DRender::QGeometryRenderer*>(c);
if(rc) break;
}
// set new geometry
gr->setParent(this);
addComponent(gr);
// removing old geometry
if(rc)
{
removeComponent(rc);
rc->deleteLater();
}
}
В результате иногда на этом этапе мое приложение вылетает. Я предполагаю, что это может происходить во время рендеринга QEntity.
В связи с этим 2 вопроса:
Как правильно изменить геометрию?
Нужно ли удалять старую геометрию или этого достаточно, чтобы исключить ее из списка компонентов QEntity?