DoubleRange.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. public:
  9. CDoubleRange(); // constructor
  10. CDoubleRange(double a_dStart, double a_dEnd); // constructor
  11. CDoubleRange(const CDoubleRange&); // copy constructor
  12. CDoubleRange(CDoubleRange*); // copy constructor
  13. CDoubleRange& operator=(const CDoubleRange&); // =operator
  14. BOOL operator==(const CDoubleRange&); // =operator
  15. virtual ~CDoubleRange(); // detractor
  16. // serialization
  17. //void Serialize(CArchive& ar);
  18. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  19. // data in range
  20. BOOL DataInRange(double a_nData);
  21. // start
  22. double GetStart() const { return m_dStart; }
  23. void SetStart(double a_nStart);
  24. // end
  25. double GetEnd() const { return m_dEnd; }
  26. void SetEnd(double a_nEnd);
  27. // double Get
  28. protected:
  29. // cleanup
  30. void Cleanup();
  31. // initialization
  32. void Init();
  33. // duplication
  34. void Duplicate(const CDoubleRange& a_oSource);
  35. // normalize
  36. void Normalise();
  37. private:
  38. // start
  39. double m_dStart;
  40. // end
  41. double m_dEnd;
  42. };
  43. typedef std::shared_ptr<CDoubleRange> __declspec(dllexport) CDoubleRangePtr;
  44. typedef std::vector<CDoubleRangePtr> __declspec(dllexport) CDoubleRangeList;
  45. }