@ElmAnim.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class ElmAnim : ElmData
  4. {
  5. enum FLAG // !! these enums are saved !!
  6. {
  7. LOOP =1<<0,
  8. LINEAR=1<<1,
  9. ROOT_DEL_POS_X=1<<2,
  10. ROOT_DEL_POS_Y=1<<3,
  11. ROOT_DEL_POS_Z=1<<4,
  12. ROOT_DEL_ROT_X=1<<5,
  13. ROOT_DEL_ROT_Y=1<<6,
  14. ROOT_DEL_ROT_Z=1<<7,
  15. ROOT_2_KEYS =1<<8,
  16. ROOT_FROM_BODY=1<<9,
  17. ROOT_DEL_POS =ROOT_DEL_POS_X|ROOT_DEL_POS_Y|ROOT_DEL_POS_Z,
  18. ROOT_DEL_ROT =ROOT_DEL_ROT_X|ROOT_DEL_ROT_Y|ROOT_DEL_ROT_Z,
  19. ROOT_ALL =ROOT_DEL_POS|ROOT_DEL_ROT|ROOT_2_KEYS|ROOT_FROM_BODY,
  20. };
  21. UID skel_id;
  22. Pose transform;
  23. Vec root_move, root_rot;
  24. ushort flag;
  25. TimeStamp loop_time, linear_time, skel_time, file_time;
  26. // get
  27. bool loop ()C; ElmAnim& loop (bool on);
  28. bool linear()C; ElmAnim& linear(bool on);
  29. bool equal(C ElmAnim &src)C;
  30. bool newer(C ElmAnim &src)C;
  31. bool rootMove ( )C; // use EqualMem to allow encoding zero as -0
  32. bool rootRot ( )C; // use EqualMem to allow encoding zero as -0
  33. void rootMoveZero( );
  34. void rootRotZero ( );
  35. void rootMove (C Vec &move); // encode as -0
  36. void rootRot (C Vec &rot ); // encode as -0
  37. uint rootFlags ( )C;
  38. void setRoot(Animation &anim);
  39. virtual bool mayContain(C UID &id)C override;
  40. // operations
  41. virtual void newData()override;
  42. void from(C Animation &anim);
  43. uint undo(C ElmAnim &src);
  44. uint sync(C ElmAnim &src);
  45. bool syncFile(C ElmAnim &src);
  46. // io
  47. static uint OldFlag(byte old);
  48. virtual bool save(File &f)C override;
  49. virtual bool load(File &f)override;
  50. virtual void save(MemPtr<TextNode> nodes)C override;
  51. virtual void load(C MemPtr<TextNode> &nodes)override;
  52. public:
  53. ElmAnim();
  54. };
  55. /******************************************************************************/
  56. /******************************************************************************/
  57. /******************************************************************************/