#ifndef EXTERNALNODE_H #define EXTERNALNODE_H #include #include "node.h" /** * @brief A node generated from an external XML metadata file */ class ExternalNode : public Node { public: ExternalNode(const QString& xml_meta_filename); virtual Node* copy() const override; virtual QString Name() const override; virtual QString id() const override; virtual QString Category() const override; virtual QString Description() const override; virtual void Retranslate() override; virtual bool IsAccelerated() const override; virtual QString AcceleratedCodeVertex() const override; virtual QString AcceleratedCodeFragment() const override; virtual int AcceleratedCodeIterations() const override; virtual NodeInput* AcceleratedCodeIterativeInput() const override; private: void XMLReadLanguageString(QXmlStreamReader* reader, QMap* map); void XMLReadEffect(QXmlStreamReader *reader); void XMLReadIterations(QXmlStreamReader* reader); void XMLReadParam(QXmlStreamReader* reader); void XMLReadShader(QXmlStreamReader* reader, QString& destination); QString xml_filename_; QMap names_; QMap descriptions_; QMap categories_; QMap > param_names_; QString id_; QString frag_code_; QString vert_code_; int iterations_; NodeInput* iteration_input_; }; #endif // EXTERNALNODE_H