DoubleRange.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. // CDoubleRange command target
  3. #include "XMLSerialization.h"
  4. namespace OTSDATA
  5. {
  6. class __declspec(dllexport) CDoubleRange : public xmls::ISlo
  7. {
  8. /*protected:
  9. DECLARE_SERIAL(CDoubleRange)*/
  10. public:
  11. CDoubleRange(); // constructor
  12. CDoubleRange(double a_dStart, double a_dEnd); // constructor
  13. CDoubleRange(const CDoubleRange&); // copy constructor
  14. CDoubleRange(CDoubleRange*); // copy constructor
  15. CDoubleRange& operator=(const CDoubleRange&); // =operator
  16. BOOL operator==(const CDoubleRange&); // =operator
  17. virtual ~CDoubleRange(); // detractor
  18. // serialization
  19. //void Serialize(CArchive& ar);
  20. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  21. // data in range
  22. BOOL DataInRange(double a_nData);
  23. // start
  24. double GetStart() const { return m_dStart; }
  25. void SetStart(double a_nStart);
  26. // end
  27. double GetEnd() const { return m_dEnd; }
  28. void SetEnd(double a_nEnd);
  29. // double Get
  30. protected:
  31. // cleanup
  32. void Cleanup();
  33. // initialization
  34. void Init();
  35. // duplication
  36. void Duplicate(const CDoubleRange& a_oSource);
  37. // normalize
  38. void Normalise();
  39. private:
  40. // start
  41. double m_dStart;
  42. // end
  43. double m_dEnd;
  44. };
  45. typedef std::shared_ptr<CDoubleRange> __declspec(dllexport) CDoubleRangePtr;
  46. typedef std::vector<CDoubleRangePtr> __declspec(dllexport) CDoubleRangeList;
  47. }