renaming/refactoring and allow creating new cameras
This commit is contained in:
@@ -110,6 +110,14 @@ namespace thermion_filament
|
||||
|
||||
SceneManager::~SceneManager()
|
||||
{
|
||||
_view->setScene(nullptr);
|
||||
_view->setCamera(nullptr);
|
||||
for(auto camera : _cameras) {
|
||||
auto entity = camera->getEntity();
|
||||
_engine->destroyCameraComponent(entity);
|
||||
_engine->getEntityManager().destroy(entity);
|
||||
}
|
||||
_cameras.clear();
|
||||
delete gizmo;
|
||||
_gridOverlay->destroy();
|
||||
destroyAll();
|
||||
@@ -2633,6 +2641,27 @@ EntityId SceneManager::createGeometry(
|
||||
auto instance = _unlitMaterialProvider->createMaterialInstance(nullptr, &uvmap);
|
||||
return instance;
|
||||
}
|
||||
|
||||
Camera* SceneManager::createCamera() {
|
||||
auto entity = EntityManager::get().create();
|
||||
auto camera = _engine->createCamera(entity);
|
||||
_cameras.push_back(camera);
|
||||
return camera;
|
||||
}
|
||||
|
||||
void SceneManager::destroyCamera(Camera* camera) {
|
||||
auto entity = camera->getEntity();
|
||||
_engine->destroyCameraComponent(entity);
|
||||
_engine->getEntityManager().destroy(entity);
|
||||
auto it = std::find(_cameras.begin(), _cameras.end(), camera);
|
||||
if(it != _cameras.end()) {
|
||||
_cameras.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void SceneManager::setCamera(Camera* camera) {
|
||||
_view->setCamera(camera);
|
||||
}
|
||||
|
||||
|
||||
} // namespace thermion_filament
|
||||
|
||||
Reference in New Issue
Block a user