@startuml class QObject package Common { abstract StitcherControllerSignalSlots abstract "StitcherController" class "MonoStitcherController" as MonoStitcherController class "StereoStitcherController" as StereoStitcherController QObject <|-- StitcherControllerSignalSlots StitcherControllerSignalSlots <|-- "StitcherController" "StitcherController" <|-- MonoStitcherController "StitcherController" <|-- StereoStitcherController } package Vahana { abstract LiveStitcherControllerSignalSlots QObject <|-- LiveStitcherControllerSignalSlots LiveStitcherControllerSignalSlots <|-- LiveMonoStitcherController MonoStitcherController <|-- LiveMonoStitcherController LiveStitcherControllerSignalSlots <|-- LiveStereoStitcherController StereoStitcherController <|-- LiveStereoStitcherController } package Studio { abstract PostProdStitcherControllerSignalSlots QObject <|-- PostProdStitcherControllerSignalSlots PostProdStitcherControllerSignalSlots <|-- PostProdMonoStitcherController MonoStitcherController <|-- PostProdMonoStitcherController PostProdStitcherControllerSignalSlots <|-- PostProdStereoStitcherController StereoStitcherController <|-- PostProdStereoStitcherController } @enduml