@MeshAOClass.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class MeshAOClass : ClosableWindow
  4. {
  5. static const cchar8 *Func_t[]
  6. ; ASSERT(MAF_FULL==0 && MAF_QUARTIC==1 && MAF_SQUARE==2 && MAF_LINEAR==3 && MAF_LINEAR_REV==4 && MAF_SQUARE_REV==5);
  7. bool preview, baked_valid, processed_ready, finished;
  8. flt strength, bias, max, ray_length, scale;
  9. MESH_AO_FUNC func;
  10. uint src_id, baked_src_id, change_id, baked_change_id;
  11. Property *info, *preview_prop;
  12. Memx<Property> props;
  13. TextBlack ts;
  14. Button ok;
  15. MeshLod src, processed, baked;
  16. Thread thread;
  17. SyncLock lock;
  18. static void PreviewToggle(MeshAOClass &editor);
  19. static void OK (MeshAOClass &editor);
  20. static void ChangedParams(C Property &prop);
  21. void changedParams();
  22. bool needRebuild()C;
  23. static bool Process(Thread &thread);
  24. bool process();
  25. void startThread();
  26. void createSrc();
  27. MeshAOClass& activate()override;
  28. virtual MeshAOClass& hide ()override;
  29. ~MeshAOClass(); // delete thread before other members
  30. MeshAOClass& del ()override;
  31. MeshAOClass& create();
  32. virtual void update(C GuiPC &gpc)override;
  33. public:
  34. MeshAOClass();
  35. };
  36. /******************************************************************************/
  37. /******************************************************************************/
  38. extern MeshAOClass MeshAO;
  39. /******************************************************************************/