Tracker diagram =============== .. uml:: ..@startuml package "Tracker package" #DDDDDD { class Algorithm class Tracker{ Ptr featureSet; Ptr sampler; Ptr model; --- +static Ptr create(const string& trackerType); +bool init(const Mat& image, const Rect& boundingBox); +bool update(const Mat& image, Rect& boundingBox); } class Tracker note right: Tracker is the general interface for each specialized trackers class TrackerMIL{ +static Ptr createTracker(const TrackerMIL::Params ¶meters); +virtual ~TrackerMIL(); } class TrackerBoosting{ +static Ptr createTracker(const TrackerBoosting::Params ¶meters); +virtual ~TrackerBoosting(); } Algorithm <|-- Tracker : virtual inheritance Tracker <|-- TrackerMIL Tracker <|-- TrackerBoosting note "Single instance of the Tracker" as N1 TrackerBoosting .. N1 TrackerMIL .. N1 } ..@enduml