From 1f303325e99c719232285fb5bb4cd8c81cc3939a Mon Sep 17 00:00:00 2001
From: Vanessa Karolek <vaka1997@uni-koblenz.de>
Date: Tue, 15 Jun 2021 10:09:28 +0200
Subject: [PATCH] [#42] add throwing exception if input index is invalid

---
 modules/camera/src/vkcv/camera/CameraManager.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp
index cffc678a..cd9d3a22 100644
--- a/modules/camera/src/vkcv/camera/CameraManager.cpp
+++ b/modules/camera/src/vkcv/camera/CameraManager.cpp
@@ -94,6 +94,9 @@ namespace vkcv{
     }
 
     Camera& CameraManager::getCamera(uint32_t cameraIndex) {
+        if (cameraIndex < 0 || cameraIndex > m_cameras.size() - 1) {
+            throw std::runtime_error("Invalid camera index.");
+        }
         return m_cameras[cameraIndex];
     }
 
@@ -101,8 +104,10 @@ namespace vkcv{
         return m_cameras[getActiveCameraIndex()];
     }
 
-
     void CameraManager::setActiveCamera(uint32_t cameraIndex) {
+        if (cameraIndex < 0 || cameraIndex > m_cameras.size() - 1) {
+            throw std::runtime_error("Invalid camera index.");
+        }
         m_activeCameraIndex = cameraIndex;
     }
 
@@ -111,10 +116,16 @@ namespace vkcv{
     }
 
     void CameraManager::setControllerType(uint32_t cameraIndex, ControllerType controllerType) {
+        if (cameraIndex < 0 || cameraIndex > m_cameras.size() - 1) {
+            throw std::runtime_error("Invalid camera index.");
+        }
         m_cameraControllerTypes[cameraIndex] = controllerType;
     }
 
     ControllerType CameraManager::getControllerType(uint32_t cameraIndex) {
+        if (cameraIndex < 0 || cameraIndex > m_cameras.size() - 1) {
+            throw std::runtime_error("Invalid camera index.");
+        }
         return m_cameraControllerTypes[cameraIndex];
     }
 
-- 
GitLab