#pragma once #include "pt-settings.hpp" #include "cv/numeric.hpp" #include "options/options.hpp" #include "video/camera.hpp" #include #include #include #include #include #include #ifdef __clang__ # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wweak-vtables" #endif const int KPointCount = 3; class IPointExtractor { public: using vec2 = numeric_types::vec2; using f = numeric_types::f; virtual void extract_points(const cv::Mat& image, cv::Mat* aPreview, std::vector& aPoints) = 0; }; struct IEasyTrackerTraits { template using pointer = std::shared_ptr; IEasyTrackerTraits(); virtual ~IEasyTrackerTraits(); virtual pointer make_point_extractor() const = 0; virtual QString get_module_name() const = 0; }; template using pt_pointer = typename IEasyTrackerTraits::pointer; #ifdef __clang__ # pragma clang diagnostic pop #endif