TriTempFile.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #pragma once
  2. #include "TriTempItem.h"
  3. namespace OTSMODEL {
  4. using namespace OTSDATA;
  5. // triangle template file mark
  6. const int TRIA_TEMP_FILE_MARK = 'T' + 'R' + 'I' + 'A' + 'T' + 'E' + 'M' + 'P';
  7. const CString TRIA_TEMP_NAME = _T("TriangulationTemplate");
  8. // triangle template file version
  9. const CString TRIA_TEMP_FILE_VERSION = _T("1.3.1");
  10. // triangle template file extension
  11. const CString TRIA_TEMP_FILE_EXT = _T(".tpf");
  12. const CString TRIA_TEMP_FILE_FILTER = _T("Triangle Template Files (*.tpf)|*.tpf||");
  13. class __declspec(dllexport) CTriTempFile :public xmls::ISlo
  14. {
  15. public:
  16. CTriTempFile(); // constructor
  17. CTriTempFile(const CTriTempFile&); // copy constructor
  18. CTriTempFile(CTriTempFile*); // copy constructor
  19. CTriTempFile& operator=(const CTriTempFile&); // =operator
  20. BOOL operator==(const CTriTempFile&); // ==operator
  21. virtual ~CTriTempFile(); // destructor
  22. // serialization
  23. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  24. // name
  25. CString GetName() { return m_strName; }
  26. void SetName(CString a_strName) { m_strName = a_strName; }
  27. //version
  28. CString GetVersion() { return m_strVersion; }
  29. void SetVersion(CString a_strVersion) { m_strVersion = a_strVersion; }
  30. // triangle template list
  31. CTriTempItemList& GetTriTempItemList() { return m_listTriTempItem; }
  32. void SetTriTempItemList(CTriTempItemList& a_listTriTemp, BOOL a_bClear = TRUE);
  33. CTriTempItemPtr GetTriTempByIndex(int a_nIndex);
  34. CTriTempItemPtr GetTriTempByName(CString a_strPartSizeName);
  35. protected:
  36. // cleanup
  37. void Cleanup();
  38. // initialization
  39. void Init();
  40. // duplication
  41. void Duplicate(const CTriTempFile& a_oSource);
  42. // name
  43. CString m_strName;
  44. //Version
  45. CString m_strVersion;
  46. // triangle template list
  47. CTriTempItemList m_listTriTempItem;
  48. };
  49. typedef std::shared_ptr<CTriTempFile> CTriTempFilePtr;
  50. typedef std::vector<CTriTempFilePtr> CTriTempFilePtrList;
  51. }