#pragma once #ifndef TFX_ATTRIBUTES_INCLUDED #define TFX_ATTRIBUTES_INCLUDED #include "tgeometry.h" #include #include #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 class DVAPI TFxAttributes { int m_id; TPointD m_dagNodePos; bool m_enabled; bool m_speedAware; bool m_isOpened; TPointD m_speed; // A stack is used to manage subgroups. QStack m_groupId; QStack m_groupName; int m_passiveCacheDataIdx; int m_groupSelector; /*-- MotionBlurなどのFxのために、オブジェクトの軌跡のデータを取得する --*/ QList m_motionPoints; public: TFxAttributes(); ~TFxAttributes(); void setId(int id) { m_id = id; } int getId() { return m_id; } void setDagNodePos(const TPointD &pos); TPointD getDagNodePos() const { return m_dagNodePos; } bool isEnabled() const { return m_enabled; } void enable(bool on) { m_enabled = on; } void setIsSpeedAware(bool yes) { m_speedAware = yes; } bool isSpeedAware() const { return m_speedAware; } void setSpeed(TPointD &speed) { m_speed = speed; } TPointD getSpeed() const { return m_speed; } void setIsOpened(bool value) { m_isOpened = value; } bool isOpened() { return m_isOpened; } int &passiveCacheDataIdx() { return m_passiveCacheDataIdx; } void setMotionPoints(QList motionPoints) { m_motionPoints = motionPoints; } QList getMotionPoints() { return m_motionPoints; } // Group management int setGroupId(int value); void setGroupId(int value, int position); int getGroupId(); QStack getGroupIdStack(); void removeGroupId(int position); int removeGroupId(); void removeFromAllGroup(); bool isGrouped(); bool isContainedInGroup(int groupId); void setGroupName(const std::wstring &name, int position = -1); std::wstring getGroupName(bool fromEditor); QStack getGroupNameStack(); int removeGroupName(bool fromEditor); void removeGroupName(int position = -1); bool editGroup(); bool isGroupEditing(); void closeEditingGroup(int groupId); int getEditingGroupId(); std::wstring getEditingGroupName(); void closeAllGroups(); }; #endif