Qt3D: изменение геометрии созданного QEntity - PullRequest
0 голосов
/ 15 октября 2019

Я изменяю геометрию 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 вопроса:

  1. Как правильно изменить геометрию?

  2. Нужно ли удалять старую геометрию или этого достаточно, чтобы исключить ее из списка компонентов QEntity?

...