OTSImageProcessParam.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #include "stdafx.h"
  2. #include "OTSImageProcessParam.h"
  3. namespace OTSMODEL
  4. {
  5. // constructor
  6. COTSImageProcessParam::COTSImageProcessParam()
  7. {
  8. Init();
  9. }
  10. // copy constructor
  11. COTSImageProcessParam::COTSImageProcessParam(const COTSImageProcessParam& a_oSource)
  12. {
  13. // can't copy itself
  14. if (&a_oSource == this)
  15. {
  16. return;
  17. }
  18. // copy data over
  19. Duplicate(a_oSource);
  20. }
  21. // copy constructor
  22. COTSImageProcessParam::COTSImageProcessParam(COTSImageProcessParam* a_poSource)
  23. {
  24. // input check
  25. ASSERT(a_poSource);
  26. if (!a_poSource)
  27. {
  28. return;
  29. }
  30. // can't copy itself
  31. if (a_poSource == this)
  32. {
  33. return;
  34. }
  35. // copy data over
  36. Duplicate(*a_poSource);
  37. }
  38. // =operator
  39. COTSImageProcessParam& COTSImageProcessParam::operator=(const COTSImageProcessParam& a_oSource)
  40. {
  41. // cleanup
  42. Cleanup();
  43. // copy the class data over
  44. Duplicate(a_oSource);
  45. // return class
  46. return *this;
  47. }
  48. // ==operator
  49. BOOL COTSImageProcessParam::operator==(const COTSImageProcessParam& a_oSource)
  50. {
  51. // return test result
  52. return m_oIncArea == a_oSource.m_oIncArea &&
  53. m_oBGGray == a_oSource.m_oBGGray &&
  54. m_oParticleGray == a_oSource.m_oParticleGray &&
  55. m_bShowAreaUp == a_oSource.m_bShowAreaUp &&
  56. m_bShowAreaLow == a_oSource.m_bShowAreaLow &&
  57. m_bShowBGUp == a_oSource.m_bShowBGUp &&
  58. m_bShowBGLow == a_oSource.m_bShowBGLow &&
  59. m_bShowPGUp == a_oSource.m_bShowPGUp &&
  60. m_bShowPGLow == a_oSource.m_bShowPGLow;
  61. }
  62. // detractor
  63. COTSImageProcessParam::~COTSImageProcessParam()
  64. {
  65. Cleanup();
  66. }
  67. // COTSStageData member functions
  68. // serialization
  69. void COTSImageProcessParam::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  70. {
  71. xmls::xBool xbShowAreaUp;
  72. xmls::xBool xbShowAreaDown;
  73. xmls::xBool xbShowBGGrayUp;
  74. xmls::xBool xbShowBGGrayDown;
  75. xmls::xBool xbShowParticleGrayUp;
  76. xmls::xBool xbShowParticleGrayDown;
  77. xmls::Slo slo;
  78. slo.Register("IncArea", &m_oIncArea);
  79. slo.Register("IncAreaUpShow", &xbShowAreaUp);
  80. slo.Register("IncAreaDownShow", &xbShowAreaDown);
  81. slo.Register("BGGray", &m_oBGGray);
  82. slo.Register("BGGrayUpShow", &xbShowBGGrayUp);
  83. slo.Register("BGGrayDownShow", &xbShowBGGrayDown);
  84. slo.Register("ParticleGray", &m_oParticleGray);
  85. slo.Register("ParticleGrayUpShow", &xbShowParticleGrayUp);
  86. slo.Register("ParticleGrayDownShow", &xbShowParticleGrayDown);
  87. if (isStoring)
  88. {
  89. xbShowAreaUp = m_bShowAreaUp;
  90. xbShowAreaDown = m_bShowAreaLow;
  91. xbShowBGGrayUp = m_bShowBGUp;
  92. xbShowBGGrayDown = m_bShowBGLow;
  93. xbShowParticleGrayUp = m_bShowPGUp;
  94. xbShowParticleGrayDown = m_bShowPGLow;
  95. slo.Serialize(true, classDoc, rootNode);
  96. }
  97. else
  98. {
  99. slo.Serialize(false, classDoc, rootNode);
  100. m_bShowAreaUp = xbShowAreaUp.value();
  101. m_bShowAreaLow = xbShowAreaDown.value();
  102. m_bShowBGUp = xbShowBGGrayUp.value();
  103. m_bShowBGLow = xbShowBGGrayDown.value();
  104. m_bShowPGUp = xbShowParticleGrayUp.value();
  105. m_bShowPGLow = xbShowParticleGrayDown.value();
  106. }
  107. }
  108. // cleanup
  109. void COTSImageProcessParam::Cleanup()
  110. {
  111. // nothing needs to be done at the moment
  112. }
  113. // initialization
  114. void COTSImageProcessParam::Init()
  115. {
  116. m_oIncArea = CDoubleRange(DEFUALT_PARTICALE_AREA_MIN, DEFUALT_PARTICALE_AREA_MAX);
  117. m_oBGGray = CIntRange(DEFUALT_BG_GRAY_LEVEL_MIN, DEFUALT_BG_GRAY_LEVEL_MAX);
  118. m_oParticleGray = CIntRange(DEFUALT_PARTICLE_GRAY_LEVEL_MIN, DEFUALT_PARTICLE_GRAY_LEVEL_MAX);
  119. m_bShowAreaUp = TRUE;
  120. m_bShowAreaLow = TRUE;
  121. m_bShowBGUp = TRUE;
  122. m_bShowBGLow = TRUE;
  123. m_bShowPGUp = TRUE;
  124. m_bShowPGLow = TRUE;
  125. }
  126. // duplication
  127. void COTSImageProcessParam::Duplicate(const COTSImageProcessParam& a_oSource)
  128. {
  129. // initialization
  130. Init();
  131. // copy data over
  132. m_oIncArea = a_oSource.m_oIncArea;
  133. m_oBGGray = a_oSource.m_oBGGray;
  134. m_oParticleGray = a_oSource.m_oParticleGray;
  135. m_bShowAreaUp = a_oSource.m_bShowAreaUp;
  136. m_bShowAreaLow = a_oSource.m_bShowAreaLow;
  137. m_bShowBGUp = a_oSource.m_bShowBGUp;
  138. m_bShowBGLow = a_oSource.m_bShowBGLow;
  139. m_bShowPGUp = a_oSource.m_bShowPGUp;
  140. m_bShowPGLow = a_oSource.m_bShowPGLow;
  141. }
  142. }