@ConvertToDeAtlasClass.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class ConvertToDeAtlasClass : PropWin
  4. {
  5. class Preview : GuiCustom
  6. {
  7. virtual void draw(C GuiPC &gpc)override;
  8. };
  9. enum MODE
  10. {
  11. NEW,
  12. REPLACE_KEEP,
  13. REPLACE_NO_PUBLISH,
  14. REPLACE_REMOVE,
  15. };
  16. static cchar8 *mode_t[]
  17. ;
  18. Memc<UID> objs, mtrls; // objects and materials to process
  19. UID base_0_tex, base_1_tex; // base textures of the materials (this should be the same for all materials)
  20. Preview preview;
  21. MODE mode;
  22. RectI source_rect;
  23. VecI2 dest_size, tex_size;
  24. Text t_tex_size;
  25. Button convert;
  26. Property *w, *h, *sw, *sh;
  27. static Str TexSize(C VecI2 &size);
  28. static void Convert(ConvertToDeAtlasClass&cta);
  29. void convertMeshes(Memc<IDReplace> &mtrl_replace, C Rect *frac);
  30. static Str Process(C Str &name, C VecI2 &size, C Rect *crop, C VecI2 *resize);
  31. void convertDo();
  32. void clearProj();
  33. void create();
  34. VecI2 finalSize()C;
  35. void setElms(C MemPtr<UID> &elm_ids);
  36. void drag(Memc<UID> &elms, GuiObj *focus_obj, C Vec2 &screen_pos);
  37. virtual ConvertToDeAtlasClass& hide()override;
  38. virtual void update(C GuiPC &gpc)override;
  39. public:
  40. ConvertToDeAtlasClass();
  41. };
  42. /******************************************************************************/
  43. /******************************************************************************/
  44. extern ConvertToDeAtlasClass ConvertToDeAtlas;
  45. /******************************************************************************/