7 #ifndef PJ_TRANSFORM_FUNCTION_H 8 #define PJ_TRANSFORM_FUNCTION_H 10 #include <QApplication> 27 using Ptr = std::shared_ptr<TransformFunction>;
33 virtual const char*
name()
const = 0;
65 std::vector<PlotData*>& dst_vect);
85 using TransformsMap = std::unordered_map<std::string, std::shared_ptr<TransformFunction>>;
94 void reset()
override;
110 virtual std::optional<PlotData::Point> calculateNextPoint(
size_t index) = 0;
115 double _last_timestamp = std::numeric_limits<double>::lowest();
131 std::map<std::string, std::function<TransformFunction::Ptr()>>
creators_;
137 static const std::set<std::string>& registeredTransforms();
139 template <
typename T>
143 std::string
name = temp.name();
144 instance()->names_.insert(name);
145 instance()->creators_[
name] = []() {
return std::make_shared<T>(); };
159 #define TransformFunction_iid "facontidavide.PlotJuggler3.TransformFunction" 162 #define TransformFunctionSISO_iid "facontidavide.PlotJuggler3.TransformFunctionSISO"
std::unordered_map< std::string, std::shared_ptr< TransformFunction > > TransformsMap
Q_DECLARE_METATYPE(QwtPoint3D)
The PlotJugglerPlugin is the base class of all the plugins.