Skip to content

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
Loading

Clone this wiki locally