-
Notifications
You must be signed in to change notification settings - Fork 0
Refactored Architecture
Inbasekaran Perumal edited this page Aug 11, 2024
·
2 revisions
classDiagram
class Core {
-GazeDetectionEngine gazeEngine
-EyeGazeTimeTracker gazeTimeTracker
-BreakNotificationSystem breakNotification
-PerformanceTracker performanceTracker
-VectorCalibration vectorCalibration
-DeviceManager deviceManager
-CameraManager cameraManager
-ModelManager modelManager
-Logging logging
-ErrorHandling errorHandling
}
class GazeDetectionEngine {
+processFrame(cv::Mat frame)
+getGazeVector() : cv::Point3f
}
class EyeGazeTimeTracker {
+updateGazeTime(cv::Mat frame)
+checkGazeTimeExceeded() : bool
}
class BreakNotificationSystem {
+notifyBreak()
}
class PerformanceTracker {
+updateMetrics(cv::Mat frame)
+logMetrics()
}
class VectorCalibration {
+calibrateScreen(std::vector<cv::Point2f> points)
+isPointInsidePolygon(cv::Point2f point) : bool
}
class DeviceManager {
+switchDevice(std::string device)
+getAvailableDevices() : std::vector<std::string>
}
class CameraManager {
+switchCamera(int cameraIndex)
+captureFrame() : cv::Mat
}
class ModelManager {
+loadModelWithPrecision(std::string precision)
}
class Logging {
+logInfo(std::string message)
+logError(std::string message)
}
class ErrorHandling {
+handleError(std::string errorType)
}
class UIManager {
+updateUI()
+onGazeTimeExceeded()
}
class MainWindow {
+loadUI(std::string uiFilePath)
+connectSignals()
+updateFrame()
}
class Utils {
+toLower(std::string str) : std::string
+toUpper(std::string str) : std::string
}
class ThirdParty {
+doSomething()
}
Core --|> GazeDetectionEngine
Core --|> EyeGazeTimeTracker
Core --|> BreakNotificationSystem
Core --|> PerformanceTracker
Core --|> VectorCalibration
Core --|> DeviceManager
Core --|> CameraManager
Core --|> ModelManager
Core --|> Logging
Core --|> ErrorHandling
MainWindow --|> UIManager
MainWindow --> Core
Core --> Utils
Core --> ThirdParty