RoiData.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Serialization;
  6. using HalconDotNet;
  7. namespace ViewWindow.Model
  8. {
  9. public class RoiData
  10. {
  11. private int _id;
  12. private string _name;
  13. private Config.Rectangle1 _rectangle1;
  14. private Config.Rectangle2 _rectangle2;
  15. private Config.Circle _circle;
  16. private Config.Line _line;
  17. [XmlElement(ElementName = "ID")]
  18. public int ID
  19. {
  20. get { return this._id; }
  21. set { this._id = value; }
  22. }
  23. [XmlElement(ElementName = "Name")]
  24. public string Name
  25. {
  26. get { return this._name; }
  27. set { this._name = value; }
  28. }
  29. [XmlElement(ElementName = "Rectangle1")]
  30. public Config.Rectangle1 Rectangle1
  31. {
  32. get { return this._rectangle1; }
  33. set { this._rectangle1 = value; }
  34. }
  35. [XmlElement(ElementName = "Rectangle2")]
  36. public Config.Rectangle2 Rectangle2
  37. {
  38. get { return this._rectangle2; }
  39. set { this._rectangle2 = value; }
  40. }
  41. [XmlElement(ElementName = "Circle")]
  42. public Config.Circle Circle
  43. {
  44. get { return this._circle; }
  45. set { this._circle = value; }
  46. }
  47. [XmlElement(ElementName = "Line")]
  48. public Config.Line Line
  49. {
  50. get { return this._line; }
  51. set { this._line = value; }
  52. }
  53. protected internal RoiData()
  54. {
  55. }
  56. protected internal RoiData(int id, ROI roi)
  57. {
  58. this._id = id;
  59. HTuple m_roiData = null;
  60. m_roiData = roi.getModelData();
  61. switch (roi.Type)
  62. {
  63. case "ROIRectangle1":
  64. this._name = "Rectangle1";
  65. if (m_roiData != null)
  66. {
  67. this._rectangle1 = new Config.Rectangle1(m_roiData[0].D, m_roiData[1].D, m_roiData[2].D, m_roiData[3].D);
  68. this._rectangle1.Color = roi.Color;
  69. }
  70. break;
  71. case "ROIRectangle2":
  72. this._name = "Rectangle2";
  73. if (m_roiData != null)
  74. {
  75. this._rectangle2 = new Config.Rectangle2(m_roiData[0].D, m_roiData[1].D, m_roiData[2].D, m_roiData[3].D, m_roiData[4].D);
  76. this._rectangle2.Color = roi.Color;
  77. }
  78. break;
  79. case "ROICircle":
  80. this._name = "Circle";
  81. if (m_roiData != null)
  82. {
  83. this._circle = new Config.Circle(m_roiData[0].D, m_roiData[1].D, m_roiData[2].D);
  84. this._circle.Color = roi.Color;
  85. }
  86. break;
  87. case "ROILine":
  88. this._name = "Line";
  89. if (m_roiData != null)
  90. {
  91. this._line = new Config.Line(m_roiData[0].D, m_roiData[1].D, m_roiData[2].D, m_roiData[3].D);
  92. this._line.Color = roi.Color;
  93. }
  94. break;
  95. default:
  96. break;
  97. }
  98. }
  99. protected internal RoiData(int id, Config.Rectangle1 rectangle1)
  100. {
  101. this._id = id;
  102. this._name = "Rectangle1";
  103. this._rectangle1 = rectangle1;
  104. }
  105. protected internal RoiData(int id, Config.Rectangle2 rectangle2)
  106. {
  107. this._id = id;
  108. this._name = "Rectangle2";
  109. this._rectangle2 = rectangle2;
  110. }
  111. protected internal RoiData(int id, Config.Circle circle)
  112. {
  113. this._id = id;
  114. this._name = "Circle";
  115. this._circle = circle;
  116. }
  117. protected internal RoiData(int id, Config.Line line)
  118. {
  119. this._id = id;
  120. this._name = "Line";
  121. this._line = line;
  122. }
  123. }
  124. }