1 #pragma once 2 3 #ifndef TOBJECTHANDLE_H 4 #define TOBJECTHANDLE_H 5 6 #include <QObject> 7 8 #include "toonz/tstageobjectid.h" 9 #include "tcommon.h" 10 11 #undef DVAPI 12 #undef DVVAR 13 #ifdef TOONZLIB_EXPORTS 14 #define DVAPI DV_EXPORT_API 15 #define DVVAR DV_EXPORT_VAR 16 #else 17 #define DVAPI DV_IMPORT_API 18 #define DVVAR DV_IMPORT_VAR 19 #endif 20 21 class TVectorImage; 22 class TStageObjectSpline; 23 24 //============================================================================= 25 // TObjectHandle 26 //----------------------------------------------------------------------------- 27 /*! 28 Mantiene un riferimento ad un particolare oggetto (da editare) 29 L'oggetto e' una objectId : puo' essere il tavolo, la camera, una colonna o 30 una 31 pegbar propriamente detta. 32 Puo' anche essere la spline associata all'oggetto 33 */ 34 35 class DVAPI TObjectHandle final : public QObject { 36 Q_OBJECT 37 38 TStageObjectId m_objectId; 39 bool m_isSpline; 40 TVectorImage *m_splineImage; 41 TStageObjectSpline *m_currentSpline; 42 43 public: 44 TObjectHandle(); 45 ~TObjectHandle(); 46 47 TStageObjectId getObjectId(); 48 void setObjectId(TStageObjectId objectId); 49 notifyObjectIdChanged(bool isDragging)50 void notifyObjectIdChanged(bool isDragging) { 51 emit objectChanged(isDragging); 52 } notifyObjectIdSwitched()53 void notifyObjectIdSwitched() { emit objectSwitched(); } 54 isSpline()55 bool isSpline() const { return m_isSpline; } 56 void setIsSpline(bool isSpline); 57 getSplineImage()58 TVectorImage *getSplineImage() const { return m_splineImage; } 59 void setSplineObject(TStageObjectSpline *splineObject); 60 61 signals: 62 void objectSwitched(); 63 void objectChanged(bool isDragging); 64 void splineChanged(); 65 66 public slots: 67 void commitSplineChanges(); 68 }; 69 70 #endif // TOBJECTHANDLE_H 71