MsrParams.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. // MsrParams.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "OTSData.h"
  5. #include "MsrParams.h"
  6. namespace OTSMODEL {
  7. // CMsrParams
  8. // constructor
  9. CMsrParams::CMsrParams()
  10. {
  11. // initialization
  12. Init();
  13. }
  14. // copy constructor
  15. CMsrParams::CMsrParams(const CMsrParams& a_oSource)
  16. {
  17. // can't copy itself
  18. if (&a_oSource == this)
  19. {
  20. return;
  21. }
  22. // copy data over
  23. Duplicate(a_oSource);
  24. }
  25. // copy constructor
  26. CMsrParams::CMsrParams(CMsrParams* a_poSource)
  27. {
  28. // input check
  29. ASSERT(a_poSource);
  30. if (!a_poSource)
  31. {
  32. return;
  33. }
  34. // can't copy itself
  35. if (a_poSource == this)
  36. {
  37. return;
  38. }
  39. // copy data over
  40. Duplicate(*a_poSource);
  41. }
  42. // =operator
  43. CMsrParams& CMsrParams::operator=(const CMsrParams& a_oSource)
  44. {
  45. // cleanup
  46. Cleanup();
  47. // copy the class data over
  48. Duplicate(a_oSource);
  49. // return class
  50. return *this;
  51. }
  52. // ==operator
  53. BOOL CMsrParams::operator==(const CMsrParams& a_oSource)
  54. {
  55. // members
  56. return m_strName.Compare(a_oSource.m_strName) == 0 &&
  57. //*(m_poPartSTDData.get()) == *(a_oSource.m_poPartSTDData.get()) &&
  58. *(m_poImageScanParam.get()) == *(a_oSource.m_poImageScanParam.get()) &&
  59. *(m_poImageProcessParam.get()) == *(a_oSource.m_poImageProcessParam.get()) &&
  60. *(m_poXRayParam.get()) == *(a_oSource.m_poXRayParam.get());
  61. }
  62. // destructor
  63. CMsrParams::~CMsrParams()
  64. {
  65. // cleanup
  66. Cleanup();
  67. }
  68. // CMsrParams member functions
  69. // public
  70. // serialization
  71. void CMsrParams::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  72. {
  73. xmls::xString xstrName;
  74. xmls::xInt xSteelTech;
  75. xmls::Slo slo;
  76. //this->Register("Name", &xstrName);
  77. slo.Register("SteelTech", &xSteelTech);
  78. slo.Register("ImageScanParam", m_poImageScanParam.get());
  79. slo.Register("ImageProcessParam", m_poImageProcessParam.get());
  80. slo.Register("XRayParam", m_poXRayParam.get());
  81. if (isStoring)
  82. {
  83. xstrName = m_strName;
  84. xSteelTech = (int)m_SteelTech;
  85. slo.Serialize(true, classDoc, rootNode);
  86. }
  87. else
  88. {
  89. slo.Serialize(false, classDoc, rootNode);
  90. m_strName = xstrName.value().c_str();
  91. m_SteelTech = (STEEL_TECHNOLOGY)xSteelTech.value();
  92. }
  93. }
  94. // image scan parameter
  95. void CMsrParams::SetImageScanParam(COTSImageScanParamPtr a_poImageScanParam)
  96. {
  97. // make sure that image scan parameter always valid
  98. ASSERT(a_poImageScanParam);
  99. if(!a_poImageScanParam)
  100. {
  101. return;
  102. }
  103. m_poImageScanParam = COTSImageScanParamPtr(new COTSImageScanParam(a_poImageScanParam.get()));
  104. }
  105. // image process parameter
  106. void CMsrParams::SetImageProcessParam(COTSImageProcessParamPtr a_poImageProcessParam)
  107. {
  108. // make sure that image process parameter always valid
  109. ASSERT(a_poImageProcessParam);
  110. if(!a_poImageProcessParam)
  111. {
  112. return;
  113. }
  114. m_poImageProcessParam = COTSImageProcessParamPtr(new COTSImageProcessParam( a_poImageProcessParam.get()));
  115. }
  116. // x-ray parameter
  117. void CMsrParams::SetXRayParam(COTSXRayParamPtr a_poXRayParam)
  118. {
  119. // make sure that x-ray parameter always valid
  120. ASSERT(a_poXRayParam);
  121. if(!a_poXRayParam)
  122. {
  123. return;
  124. }
  125. m_poXRayParam = COTSXRayParamPtr(new COTSXRayParam( a_poXRayParam.get()));
  126. }
  127. // protected
  128. // cleanup
  129. void CMsrParams::Cleanup()
  130. {
  131. // need to do nothing at the moment
  132. }
  133. // initialization
  134. void CMsrParams::Init()
  135. {
  136. // initialization
  137. m_strName = _T("MsrParam");
  138. m_SteelTech = STEEL_TECHNOLOGY::GeneralProcessMode;
  139. m_poImageScanParam = COTSImageScanParamPtr(new COTSImageScanParam());
  140. m_poImageProcessParam = COTSImageProcessParamPtr(new COTSImageProcessParam());
  141. m_poXRayParam = COTSXRayParamPtr(new COTSXRayParam());
  142. }
  143. // duplication
  144. void CMsrParams::Duplicate(const CMsrParams& a_oSource)
  145. {
  146. // initialization
  147. Init();
  148. // copy data over
  149. m_strName = a_oSource.m_strName;
  150. m_SteelTech = a_oSource.m_SteelTech;
  151. m_poImageScanParam = a_oSource.m_poImageScanParam;
  152. m_poImageProcessParam = a_oSource.m_poImageProcessParam;
  153. m_poXRayParam = a_oSource.m_poXRayParam;
  154. }
  155. }