@MergeSimilarMaterials.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class MergeSimilarMaterials : PropWin
  4. {
  5. class Mtrl
  6. {
  7. Str name, color_name;
  8. UID elm_id, base_0_tex, base_1_tex, detail_tex, macro_tex, reflect_tex, light_tex;
  9. bool cull;
  10. MATERIAL_TECHNIQUE tech;
  11. Vec4 col;
  12. flt bump, spec, glow, reflect, uv_scale;
  13. bool similar(C Mtrl &m)C;
  14. Mtrl& set(C UID &elm_id, C EditMaterial &m);
  15. };
  16. static int CompareMtrl(C Mtrl &a, C Mtrl &b); // compare reversed because we're going to process materials in reversed order later
  17. static void Detect(MergeSimilarMaterials &msm);
  18. void display(C MemPtr<UID> &elm_ids);
  19. void drag(Memc<UID> &elms, GuiObj *focus_obj, C Vec2 &screen_pos);
  20. static void Merge(MergeSimilarMaterials &msm);
  21. class Data
  22. {
  23. UID id;
  24. static Str AsText(C Data &data);
  25. public:
  26. Data();
  27. };
  28. Memc<IDReplace> replace;
  29. Memc<Data> data;
  30. List<Data> list;
  31. Region region;
  32. bool name, color_name, color_is, color_tex, normal_tex, detail_tex, macro_tex, reflect_tex, light_tex, tech, cull;
  33. flt color_value, bump_value, spec_value, glow_value, reflect_value, uv_scale;
  34. CheckBox color_value_on, bump_value_on, spec_value_on, glow_value_on, reflect_value_on, uv_scale_on;
  35. Button detect, merge;
  36. Text detected;
  37. void clearProj();
  38. void create();
  39. virtual void update(C GuiPC &gpc)override;
  40. public:
  41. MergeSimilarMaterials();
  42. };
  43. /******************************************************************************/
  44. /******************************************************************************/
  45. extern MergeSimilarMaterials MSM;
  46. /******************************************************************************/