MyStream.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #include "MyStream.h"
  2. void readHObject(QDataStream& readStream, HalconCpp::HObject& hObj)
  3. {
  4. using namespace HalconCpp;
  5. QByteArray data;
  6. readStream >> data;
  7. if (data.size() == 0)
  8. return;
  9. try
  10. {
  11. HSerializedItem item;
  12. item.CreateSerializedItemPtr(data.data(), data.size(), "true");
  13. hObj.DeserializeObject(item);
  14. }
  15. catch (...)
  16. {
  17. }
  18. }
  19. void readHTuple(QDataStream& readStream, HalconCpp::HTuple& hDat)
  20. {
  21. using namespace HalconCpp;
  22. QByteArray data;
  23. readStream >> data;
  24. try
  25. {
  26. //int s = data.size();
  27. //HSerializedItem item;
  28. //item.CreateSerializedItemPtr((void*)data.data(), (Hlong)data.size(), "true");
  29. //DeserializeTuple(HTuple(item.GetHandle()), &hDat);
  30. HTuple hv_SerializedItemHandle1;
  31. CreateSerializedItemPtr((Hlong)data.data(), (Hlong)data.size(), "true", &hv_SerializedItemHandle1);
  32. DeserializeTuple(hv_SerializedItemHandle1, &hDat);
  33. }
  34. catch (...)
  35. {
  36. }
  37. }
  38. void readShapeModel(QDataStream& readStream, HalconCpp::HShapeModel& hModel)
  39. {
  40. using namespace HalconCpp;
  41. QByteArray data;
  42. readStream >> data;
  43. if (data.size() == 0)
  44. return;
  45. try
  46. {
  47. //int s = data.size();
  48. HSerializedItem item;
  49. item.CreateSerializedItemPtr(data.data(), data.size(), "true");
  50. hModel.DeserializeShapeModel(item);
  51. }
  52. catch (...)
  53. {
  54. }
  55. }
  56. void saveHObject(QDataStream& writeStream, const HalconCpp::HObject& hObj)
  57. {
  58. using namespace HalconCpp;
  59. QByteArray byteArray;
  60. if (hObj.IsInitialized())
  61. {
  62. HSerializedItem item = hObj.SerializeObject();
  63. Hlong size;
  64. char* data = (char*)item.GetSerializedItemPtr(&size);
  65. byteArray.resize(size);
  66. memcpy(byteArray.data(), data, size);
  67. }
  68. writeStream << byteArray;
  69. }
  70. void saveHTuple(QDataStream& writeStream, const HalconCpp::HTuple& hDat)
  71. {
  72. using namespace HalconCpp;
  73. QByteArray byteArray;
  74. HSerializedItem item = hDat.SerializeTuple();
  75. Hlong size;
  76. char* data = (char*)item.GetSerializedItemPtr(&size);
  77. byteArray.resize(size);
  78. memcpy(byteArray.data(), data, size);
  79. writeStream << byteArray;
  80. }
  81. void saveShapeModel(QDataStream& writeStream, const HalconCpp::HShapeModel& hModel)
  82. {
  83. using namespace HalconCpp;
  84. QByteArray byteArray;
  85. if (hModel.IsInitialized())
  86. {
  87. HSerializedItem item = hModel.SerializeShapeModel();
  88. Hlong size;
  89. char* data = (char*)item.GetSerializedItemPtr(&size);
  90. byteArray.resize(size);
  91. memcpy(byteArray.data(), data, size);
  92. }
  93. writeStream << byteArray;
  94. }
  95. QDataStream& operator << (QDataStream& ar, HObject& hDat)
  96. {
  97. saveHObject(ar, hDat);
  98. return ar;
  99. }
  100. QDataStream& operator >> (QDataStream& ar, HObject& hDat)
  101. {
  102. readHObject(ar, hDat);
  103. return ar;
  104. }
  105. QDataStream& operator << (QDataStream& ar, HTuple& hDat)
  106. {
  107. saveHTuple(ar, hDat);
  108. return ar;
  109. }
  110. QDataStream& operator >> (QDataStream& ar, HTuple& hDat)
  111. {
  112. readHTuple(ar, hDat);
  113. return ar;
  114. }
  115. QDataStream& operator<<(QDataStream& dataStream, ROIController& roi)
  116. {
  117. roi.save(dataStream);
  118. return dataStream;
  119. }
  120. QDataStream& operator>>(QDataStream& dataStream, ROIController& roi)
  121. {
  122. roi.load(dataStream);
  123. return dataStream;
  124. }