#pragma once #ifndef TMACROFX_INCLUDED #define TMACROFX_INCLUDED #include "trasterfx.h" #undef DVAPI #undef DVVAR #ifdef TFX_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif #ifdef _WIN32 #pragma warning(disable : 4251) #endif //=================================================================== class DVAPI TMacroFx : public TRasterFx { FX_DECLARATION(TMacroFx) TRasterFxP m_root; std::vector m_fxs; bool m_isEditing; bool isaLeaf(TFx *fx) const; public: static bool analyze(const std::vector &fxs, TFxP &root, std::vector &roots, std::vector &leafs); static bool analyze(const std::vector &fxs); static TMacroFx *create(const std::vector &fxs); TMacroFx(); ~TMacroFx(); TFx *clone(bool recursive = true) const override; bool doGetBBox(double frame, TRectD &bBox, const TRenderSettings &info) override; void doDryCompute(TRectD &rect, double frame, const TRenderSettings &info) override; void doCompute(TTile &tile, double frame, const TRenderSettings &ri) override; TFxTimeRegion getTimeRegion() const override; std::string getPluginId() const override; void setRoot(TFx *root); TFx *getRoot() const; //! Returns the Fx identified by \b id. //! Returns 0 if the macro does not contains an Fx with fxId equals ti \b id. TFx *getFxById(const std::wstring &id) const; // restituisce un riferimento al vettore contenente gli effetti contenuti nel // macroFx const std::vector &getFxs() const; std::string getMacroFxType() const; bool canHandle(const TRenderSettings &info, double frame) override; std::string getAlias(double frame, const TRenderSettings &info) const override; void loadData(TIStream &is) override; void saveData(TOStream &os) override; bool isEditing() { return m_isEditing; } void editMacro(bool edit) { m_isEditing = edit; } void compatibilityTranslatePort(int majorVersion, int minorVersion, std::string &portName) override; private: // non implementati TMacroFx(const TMacroFx &); void operator=(const TMacroFx &); }; //------------------------------------------------------------------- #endif