1 #pragma once 2 3 #ifndef TFX_ATTRIBUTES_INCLUDED 4 #define TFX_ATTRIBUTES_INCLUDED 5 6 #include "tgeometry.h" 7 #include <QStack> 8 #include <QList> 9 10 #undef DVAPI 11 #undef DVVAR 12 #ifdef TFX_EXPORTS 13 #define DVAPI DV_EXPORT_API 14 #define DVVAR DV_EXPORT_VAR 15 #else 16 #define DVAPI DV_IMPORT_API 17 #define DVVAR DV_IMPORT_VAR 18 #endif 19 20 class DVAPI TFxAttributes { 21 int m_id; 22 TPointD m_dagNodePos; 23 bool m_enabled; 24 bool m_speedAware; 25 bool m_isOpened; 26 TPointD m_speed; 27 // A stack is used to manage subgroups. 28 QStack<int> m_groupId; 29 QStack<std::wstring> m_groupName; 30 int m_passiveCacheDataIdx; 31 32 int m_groupSelector; 33 34 /*-- MotionBlurなどのFxのために、オブジェクトの軌跡のデータを取得する --*/ 35 QList<TPointD> m_motionPoints; 36 // to maintain backward compatibility in the fx 37 int m_fxVersion; 38 39 public: 40 TFxAttributes(); 41 ~TFxAttributes(); 42 setId(int id)43 void setId(int id) { m_id = id; } getId()44 int getId() { return m_id; } 45 46 void setDagNodePos(const TPointD &pos); getDagNodePos()47 TPointD getDagNodePos() const { return m_dagNodePos; } 48 isEnabled()49 bool isEnabled() const { return m_enabled; } enable(bool on)50 void enable(bool on) { m_enabled = on; } 51 setIsSpeedAware(bool yes)52 void setIsSpeedAware(bool yes) { m_speedAware = yes; } isSpeedAware()53 bool isSpeedAware() const { return m_speedAware; } 54 setSpeed(TPointD & speed)55 void setSpeed(TPointD &speed) { m_speed = speed; } getSpeed()56 TPointD getSpeed() const { return m_speed; } 57 setIsOpened(bool value)58 void setIsOpened(bool value) { m_isOpened = value; } isOpened()59 bool isOpened() { return m_isOpened; } 60 passiveCacheDataIdx()61 int &passiveCacheDataIdx() { return m_passiveCacheDataIdx; } 62 setMotionPoints(QList<TPointD> motionPoints)63 void setMotionPoints(QList<TPointD> motionPoints) { 64 m_motionPoints = motionPoints; 65 } getMotionPoints()66 QList<TPointD> getMotionPoints() { return m_motionPoints; } setFxVersion(int version)67 void setFxVersion(int version) { m_fxVersion = version; } getFxVersion()68 int getFxVersion() const { return m_fxVersion; }; 69 70 // Group management 71 72 int setGroupId(int value); 73 void setGroupId(int value, int position); 74 int getGroupId(); 75 QStack<int> getGroupIdStack(); 76 void removeGroupId(int position); 77 int removeGroupId(); 78 79 void removeFromAllGroup(); 80 81 bool isGrouped(); 82 bool isContainedInGroup(int groupId); 83 84 void setGroupName(const std::wstring &name, int position = -1); 85 std::wstring getGroupName(bool fromEditor); 86 QStack<std::wstring> getGroupNameStack(); 87 int removeGroupName(bool fromEditor); 88 void removeGroupName(int position = -1); 89 90 bool editGroup(); 91 bool isGroupEditing(); 92 void closeEditingGroup(int groupId); 93 int getEditingGroupId(); 94 std::wstring getEditingGroupName(); 95 void closeAllGroups(); 96 }; 97 98 #endif 99