PartSTDRuleItem.h 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #pragma once
  2. #include <string>
  3. #include <vector>
  4. #include "element.h"
  5. #include <map>
  6. #include "Posxray.h"
  7. using namespace std;
  8. using namespace OTSDATA;
  9. class PartSTDRuleItem :public xmls::ISlo
  10. {
  11. public:
  12. std::map<std::string, CElementPtr>& GetMapElements();
  13. virtual void Serialize(bool isStoring, tinyxml2::XMLDocument* classDoc, tinyxml2::XMLElement* rootNode) override;
  14. std::string GetHardness() const { return m_Hardness; }
  15. void SetHardness(std::string val) { m_Hardness = val; }
  16. std::string GetDensity() const { return m_Density; }
  17. void SetDensity(std::string val) { m_Density = val; }
  18. std::string GetElectrical_conductivity() const { return m_Electrical_conductivity; }
  19. void SetElectrical_conductivity(std::string val) { m_Electrical_conductivity = val; }
  20. int GetID() const { return ID; }
  21. void SetID(int val) { ID = val; }
  22. std::string GetName() const { return m_name; }
  23. void SetName(std::string val) { m_name = val; }
  24. std::string GetColor() const { return m_color; }
  25. void SetColor(std::string val) { m_color = val; }
  26. int GetGrpID() const { return m_grpId; }
  27. void SetGrpID(int val) { m_grpId = val; }
  28. std::string GetGrpName() const { return m_grpName; }
  29. void SetGrpName(std::string val) { m_grpName = val; }
  30. std::string GetGrpColor() const { return m_grpColor; }
  31. void SetGrpColor(std::string val) { m_grpColor = val; }
  32. std::vector<std::string> GetUsingImgPropertyNameList() { return m_ImgPropertyList; }
  33. void SetUsingImgPropertyNameList(std::vector<std::string> val) { m_ImgPropertyList = val; }
  34. std::vector<std::string> GetUsingOtherpropertyList() { return m_OtherpropertyList; }
  35. void SetUsingOtherpropertyList(std::vector<std::string> val) { m_OtherpropertyList = val; }
  36. std::vector<std::string> GetUsingConstants() const { return m_usingConstants; }
  37. std::string GetExpressionStr() const { return m_expressionStr; }
  38. void SetExpressionStr(std::string val) { m_expressionStr = val; }
  39. CElementsList GetKeyElementList() const { return m_KeyelementList; }
  40. void SetKeyElementList(CElementsList val) { m_KeyelementList = val; }
  41. CElementsList GetSubElementList() const { return m_SubelementList; }
  42. void SetSubElementList(CElementsList val) { m_SubelementList = val; }
  43. CElementsList GetAllSortedEleList();
  44. std::string GetFormula() const { return m_Formula; }
  45. void SetFormula(std::string val) { m_Formula = val; }
  46. std::string GetElement() const { return m_Element; }
  47. void SetElement(std::string val) { m_Element = val; }
  48. double GetBSE() const { return m_BSE; }
  49. void SetBSE(double val) { m_BSE = val; }
  50. void AddXraySpectrum(CPosXrayPtr xray);
  51. void SetIsElementAnalysis(bool isanalysis) { m_elementAnalysis = isanalysis; };
  52. bool GetIsElementAnalysis() { return m_elementAnalysis; };
  53. double CalculateSimilarity(CPosXrayPtr xray);
  54. private:
  55. double GetCosValue(CPosXrayPtr posXray, CPosXrayPtr posXray1, int iDataLen1);
  56. int ID;
  57. std::string m_name;
  58. std::string m_color;
  59. int m_grpId;
  60. std::string m_grpName;
  61. std::string m_grpColor;
  62. CElementsList m_KeyelementList;
  63. CElementsList m_SubelementList;
  64. std::vector<std::string> m_ImgPropertyList;
  65. std::vector<std::string> m_OtherpropertyList;
  66. std::vector<std::string> m_usingConstants;
  67. std::string m_expressionStr;
  68. std::map <std::string, CElementPtr> m_mapEleItems;
  69. std::string m_Hardness;
  70. std::string m_Density;
  71. std::string m_Electrical_conductivity;
  72. double m_BSE;
  73. std::string m_Formula;
  74. std::string m_Element;
  75. bool m_elementAnalysis;
  76. CPosXrayList m_spectrums;
  77. };
  78. typedef std::shared_ptr<PartSTDRuleItem> PartSTDRuleItemPtr;
  79. typedef std::vector<PartSTDRuleItemPtr> PartSTDRuleItemList;