Tracker diagram =============== .. uml:: ..@startuml package "Tracker package" #DDDDDD { class Algorithm class Tracker{ Ptr<TrackerFeatureSet> featureSet; Ptr<TrackerSampler> sampler; Ptr<TrackerModel> model; --- +static Ptr<Tracker> 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<TrackerMIL> createTracker(const TrackerMIL::Params ¶meters); +virtual ~TrackerMIL(); } class TrackerBoosting{ +static Ptr<TrackerBoosting> 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