@PhysMtrlEditor.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class PhysMtrlEditor : PropWin
  4. {
  5. class Change : Edit::_Undo::Change
  6. {
  7. EditPhysMtrl data;
  8. virtual void create(ptr user)override;
  9. virtual void apply(ptr user)override;
  10. };
  11. static cchar8 *mode_t[]
  12. ; ASSERT(PhysMtrl::MODE_AVG==0 && PhysMtrl::MODE_MUL==1 && PhysMtrl::MODE_MIN==2 && PhysMtrl::MODE_MAX==3);
  13. enum SIM_TYPE
  14. {
  15. SIM_NONE ,
  16. SIM_FRIC ,
  17. SIM_BOUNCE ,
  18. SIM_DAMPING ,
  19. SIM_ADAMPING,
  20. };
  21. UID elm_id;
  22. Elm *elm;
  23. bool changed;
  24. Button undo, redo, locate;
  25. ViewportSkin viewport;
  26. SIM_TYPE sim_type;
  27. flt prop_max_x, sim_time, sim_length;
  28. Camera cam;
  29. EditPhysMtrl edit;
  30. PhysMtrl *game, temp; // temp has everything except density
  31. Memc<Actor> actor_dyn, actor_stat;
  32. Property *fric_stat, *fric_dyn, *fric_mode, *boun, *boun_mode, *damp, *adamp, *df, *dfs, *dfd, *dfb;
  33. Edit::Undo<Change> undos; void undoVis();
  34. static void Draw(Viewport &viewport);
  35. void draw();
  36. static void PreChanged(C Property &prop);
  37. static void Changed(C Property &prop);
  38. static void FricStat( PhysMtrlEditor &me, C Str &t);
  39. static Str FricStat(C PhysMtrlEditor &me );
  40. static void FricDyn ( PhysMtrlEditor &me, C Str &t);
  41. static Str FricDyn (C PhysMtrlEditor &me );
  42. static void FricMode( PhysMtrlEditor &me, C Str &t);
  43. static Str FricMode(C PhysMtrlEditor &me );
  44. static void Boun ( PhysMtrlEditor &me, C Str &t);
  45. static Str Boun (C PhysMtrlEditor &me );
  46. static void BounMode( PhysMtrlEditor &me, C Str &t);
  47. static Str BounMode(C PhysMtrlEditor &me );
  48. static void Density ( PhysMtrlEditor &me, C Str &t);
  49. static Str Density (C PhysMtrlEditor &me );
  50. static void Damping ( PhysMtrlEditor &me, C Str &t);
  51. static Str Damping (C PhysMtrlEditor &me );
  52. static void ADamping( PhysMtrlEditor &me, C Str &t);
  53. static Str ADamping(C PhysMtrlEditor &me );
  54. static void Undo (PhysMtrlEditor &editor);
  55. static void Redo (PhysMtrlEditor &editor);
  56. static void Locate(PhysMtrlEditor &editor);
  57. ElmPhysMtrl* data()C;
  58. void simType(SIM_TYPE sim_type);
  59. SIM_TYPE desiredSimType()C;
  60. void create();
  61. void setMtrl();
  62. virtual PhysMtrlEditor& hide ( ) override;
  63. virtual Rect sizeLimit( )C override;
  64. virtual PhysMtrlEditor& rect (C Rect &rect) override;
  65. virtual void update(C GuiPC &gpc)override;
  66. void flush();
  67. void setChanged();
  68. void set(Elm *elm);
  69. void toggle(Elm *elm);
  70. void activate(Elm *elm);
  71. void elmChanged(C UID &elm_id);
  72. void erasing(C UID &elm_id);
  73. public:
  74. PhysMtrlEditor();
  75. };
  76. /******************************************************************************/
  77. /******************************************************************************/
  78. extern PhysMtrlEditor PhysMtrlEdit;
  79. /******************************************************************************/