more camera work
This commit is contained in:
@@ -201,7 +201,8 @@ namespace thermion_filament
|
||||
_resourceLoaderWrapper,
|
||||
_engine,
|
||||
_scene,
|
||||
uberArchivePath);
|
||||
uberArchivePath,
|
||||
_mainCamera);
|
||||
}
|
||||
|
||||
void FilamentViewer::setAntiAliasing(bool msaa, bool fxaa, bool taa)
|
||||
|
||||
@@ -52,11 +52,13 @@ namespace thermion_filament
|
||||
const ResourceLoaderWrapperImpl *const resourceLoaderWrapper,
|
||||
Engine *engine,
|
||||
Scene *scene,
|
||||
const char *uberArchivePath)
|
||||
const char *uberArchivePath,
|
||||
Camera *mainCamera)
|
||||
: _view(view),
|
||||
_resourceLoaderWrapper(resourceLoaderWrapper),
|
||||
_engine(engine),
|
||||
_scene(scene)
|
||||
_scene(scene),
|
||||
_mainCamera(mainCamera)
|
||||
{
|
||||
|
||||
_stbDecoder = createStbProvider(_engine);
|
||||
@@ -2662,6 +2664,20 @@ EntityId SceneManager::createGeometry(
|
||||
void SceneManager::setCamera(Camera* camera) {
|
||||
_view->setCamera(camera);
|
||||
}
|
||||
|
||||
size_t SceneManager::getCameraCount() {
|
||||
return _cameras.size() + 1;
|
||||
}
|
||||
|
||||
Camera* SceneManager::getCameraAt(size_t index) {
|
||||
if(index == 0) {
|
||||
return _mainCamera;
|
||||
}
|
||||
if(index - 1 > _cameras.size() - 1) {
|
||||
return nullptr;
|
||||
}
|
||||
return _cameras[index-1];
|
||||
}
|
||||
|
||||
|
||||
} // namespace thermion_filament
|
||||
|
||||
@@ -1119,4 +1119,14 @@ EMSCRIPTEN_KEEPALIVE void SceneManager_setCamera(TSceneManager* tSceneManager, T
|
||||
auto * camera = reinterpret_cast<Camera*>(tCamera);
|
||||
sceneManager->setCamera(camera);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE size_t SceneManager_getCameraCount(TSceneManager *tSceneManager) {
|
||||
auto * sceneManager = reinterpret_cast<SceneManager*>(tSceneManager);
|
||||
return sceneManager->getCameraCount();
|
||||
}
|
||||
EMSCRIPTEN_KEEPALIVE TCamera* SceneManager_getCameraAt(TSceneManager *tSceneManager, size_t index) {
|
||||
auto * sceneManager = reinterpret_cast<SceneManager*>(tSceneManager);
|
||||
auto * camera = sceneManager->getCameraAt(index);
|
||||
return reinterpret_cast<TCamera*>(camera);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user