HIOStream.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842
  1. /***********************************************************
  2. * File generated by the HALCON-Compiler hcomp version 22.05
  3. * Usage: Interface to C++
  4. *
  5. * Software by: MVTec Software GmbH, www.mvtec.com
  6. ***********************************************************/
  7. #ifndef HCPP_HIOSTREAM
  8. # define HCPP_HIOSTREAM
  9. # ifndef HCPP_NO_USE_IOSTREAM
  10. // Inline functions for serialization from/into streams.
  11. //
  12. // Windows does not like passing file handles across DLL boundaries, therefore
  13. // these functions are to be used inline in your application.
  14. # include <iostream>
  15. namespace HalconCpp
  16. {
  17. # define H_SERIAL_HEADER_SIZE 16
  18. // Serialize object instance to output stream
  19. void inline HSerializedItem::Serialize(std::ostream& stream)
  20. {
  21. Hlong size;
  22. const char* ptr = (const char*)GetSerializedItemPtr(&size);
  23. stream.write(ptr, size);
  24. }
  25. // Deserialize object instance from input stream
  26. HSerializedItem inline HSerializedItem::Deserialize(std::istream& stream)
  27. {
  28. char header[H_SERIAL_HEADER_SIZE];
  29. uint64_t size;
  30. char* serialized;
  31. // Read, parse and verify header
  32. stream.read(header, H_SERIAL_HEADER_SIZE);
  33. serialized =
  34. DeserializeInitFromHeader(header, !stream.fail() && !stream.eof(),
  35. &size);
  36. // Read and verify serializated data
  37. stream.read(serialized + H_SERIAL_HEADER_SIZE, (std::streamsize)size);
  38. // Return serialized item
  39. return DeserializeBufferToItem(size, !stream.fail() && !stream.eof(),
  40. serialized);
  41. }
  42. // Serialize a HTemplate instance to a binary output stream
  43. inline std::ostream& operator << (std::ostream& stream, const HTemplate& TemplateID)
  44. {
  45. TemplateID.SerializeTemplate().Serialize(stream);
  46. return stream;
  47. }
  48. // Deserialize binary input stream to a HTemplate
  49. inline std::istream& operator >> (std::istream& stream, HTemplate& TemplateID)
  50. {
  51. TemplateID.DeserializeTemplate(HSerializedItem::Deserialize(stream));
  52. return stream;
  53. }
  54. // Serialize a HNCCModel instance to a binary output stream
  55. inline std::ostream& operator << (std::ostream& stream, const HNCCModel& ModelID)
  56. {
  57. ModelID.SerializeNccModel().Serialize(stream);
  58. return stream;
  59. }
  60. // Deserialize binary input stream to a HNCCModel
  61. inline std::istream& operator >> (std::istream& stream, HNCCModel& ModelID)
  62. {
  63. ModelID.DeserializeNccModel(HSerializedItem::Deserialize(stream));
  64. return stream;
  65. }
  66. // Serialize a HShapeModel instance to a binary output stream
  67. inline std::ostream& operator << (std::ostream& stream, const HShapeModel& ModelID)
  68. {
  69. ModelID.SerializeShapeModel().Serialize(stream);
  70. return stream;
  71. }
  72. // Deserialize binary input stream to a HShapeModel
  73. inline std::istream& operator >> (std::istream& stream, HShapeModel& ModelID)
  74. {
  75. ModelID.DeserializeShapeModel(HSerializedItem::Deserialize(stream));
  76. return stream;
  77. }
  78. // Serialize a HObjectModel3D instance to a binary output stream
  79. inline std::ostream& operator << (std::ostream& stream, const HObjectModel3D& ObjectModel3D)
  80. {
  81. ObjectModel3D.SerializeObjectModel3d().Serialize(stream);
  82. return stream;
  83. }
  84. // Deserialize binary input stream to a HObjectModel3D
  85. inline std::istream& operator >> (std::istream& stream, HObjectModel3D& ObjectModel3D)
  86. {
  87. ObjectModel3D.DeserializeObjectModel3d(HSerializedItem::Deserialize(stream));
  88. return stream;
  89. }
  90. // Serialize a HSurfaceModel instance to a binary output stream
  91. inline std::ostream& operator << (std::ostream& stream, const HSurfaceModel& SurfaceModelID)
  92. {
  93. SurfaceModelID.SerializeSurfaceModel().Serialize(stream);
  94. return stream;
  95. }
  96. // Deserialize binary input stream to a HSurfaceModel
  97. inline std::istream& operator >> (std::istream& stream, HSurfaceModel& SurfaceModelID)
  98. {
  99. SurfaceModelID.DeserializeSurfaceModel(HSerializedItem::Deserialize(stream));
  100. return stream;
  101. }
  102. // Serialize a HDeformableSurfaceModel instance to a binary output stream
  103. inline std::ostream& operator << (std::ostream& stream, const HDeformableSurfaceModel& DeformableSurfaceModel)
  104. {
  105. DeformableSurfaceModel.SerializeDeformableSurfaceModel().Serialize(stream);
  106. return stream;
  107. }
  108. // Deserialize binary input stream to a HDeformableSurfaceModel
  109. inline std::istream& operator >> (std::istream& stream, HDeformableSurfaceModel& DeformableSurfaceModel)
  110. {
  111. DeformableSurfaceModel.DeserializeDeformableSurfaceModel(HSerializedItem::Deserialize(stream));
  112. return stream;
  113. }
  114. // Serialize a HShapeModel3D instance to a binary output stream
  115. inline std::ostream& operator << (std::ostream& stream, const HShapeModel3D& ShapeModel3DID)
  116. {
  117. ShapeModel3DID.SerializeShapeModel3d().Serialize(stream);
  118. return stream;
  119. }
  120. // Deserialize binary input stream to a HShapeModel3D
  121. inline std::istream& operator >> (std::istream& stream, HShapeModel3D& ShapeModel3DID)
  122. {
  123. ShapeModel3DID.DeserializeShapeModel3d(HSerializedItem::Deserialize(stream));
  124. return stream;
  125. }
  126. // Serialize a HDeformableModel instance to a binary output stream
  127. inline std::ostream& operator << (std::ostream& stream, const HDeformableModel& ModelID)
  128. {
  129. ModelID.SerializeDeformableModel().Serialize(stream);
  130. return stream;
  131. }
  132. // Deserialize binary input stream to a HDeformableModel
  133. inline std::istream& operator >> (std::istream& stream, HDeformableModel& ModelID)
  134. {
  135. ModelID.DeserializeDeformableModel(HSerializedItem::Deserialize(stream));
  136. return stream;
  137. }
  138. // Serialize a HDescriptorModel instance to a binary output stream
  139. inline std::ostream& operator << (std::ostream& stream, const HDescriptorModel& ModelID)
  140. {
  141. ModelID.SerializeDescriptorModel().Serialize(stream);
  142. return stream;
  143. }
  144. // Deserialize binary input stream to a HDescriptorModel
  145. inline std::istream& operator >> (std::istream& stream, HDescriptorModel& ModelID)
  146. {
  147. ModelID.DeserializeDescriptorModel(HSerializedItem::Deserialize(stream));
  148. return stream;
  149. }
  150. // Serialize a HVariationModel instance to a binary output stream
  151. inline std::ostream& operator << (std::ostream& stream, const HVariationModel& ModelID)
  152. {
  153. ModelID.SerializeVariationModel().Serialize(stream);
  154. return stream;
  155. }
  156. // Deserialize binary input stream to a HVariationModel
  157. inline std::istream& operator >> (std::istream& stream, HVariationModel& ModelID)
  158. {
  159. ModelID.DeserializeVariationModel(HSerializedItem::Deserialize(stream));
  160. return stream;
  161. }
  162. // Serialize a HCalibData instance to a binary output stream
  163. inline std::ostream& operator << (std::ostream& stream, const HCalibData& CalibDataID)
  164. {
  165. CalibDataID.SerializeCalibData().Serialize(stream);
  166. return stream;
  167. }
  168. // Deserialize binary input stream to a HCalibData
  169. inline std::istream& operator >> (std::istream& stream, HCalibData& CalibDataID)
  170. {
  171. CalibDataID.DeserializeCalibData(HSerializedItem::Deserialize(stream));
  172. return stream;
  173. }
  174. // Serialize a HCameraSetupModel instance to a binary output stream
  175. inline std::ostream& operator << (std::ostream& stream, const HCameraSetupModel& CameraSetupModelID)
  176. {
  177. CameraSetupModelID.SerializeCameraSetupModel().Serialize(stream);
  178. return stream;
  179. }
  180. // Deserialize binary input stream to a HCameraSetupModel
  181. inline std::istream& operator >> (std::istream& stream, HCameraSetupModel& CameraSetupModelID)
  182. {
  183. CameraSetupModelID.DeserializeCameraSetupModel(HSerializedItem::Deserialize(stream));
  184. return stream;
  185. }
  186. // Serialize a HComponentTraining instance to a binary output stream
  187. inline std::ostream& operator << (std::ostream& stream, const HComponentTraining& ComponentTrainingID)
  188. {
  189. ComponentTrainingID.SerializeTrainingComponents().Serialize(stream);
  190. return stream;
  191. }
  192. // Deserialize binary input stream to a HComponentTraining
  193. inline std::istream& operator >> (std::istream& stream, HComponentTraining& ComponentTrainingID)
  194. {
  195. ComponentTrainingID.DeserializeTrainingComponents(HSerializedItem::Deserialize(stream));
  196. return stream;
  197. }
  198. // Serialize a HComponentModel instance to a binary output stream
  199. inline std::ostream& operator << (std::ostream& stream, const HComponentModel& ComponentModelID)
  200. {
  201. ComponentModelID.SerializeComponentModel().Serialize(stream);
  202. return stream;
  203. }
  204. // Deserialize binary input stream to a HComponentModel
  205. inline std::istream& operator >> (std::istream& stream, HComponentModel& ComponentModelID)
  206. {
  207. ComponentModelID.DeserializeComponentModel(HSerializedItem::Deserialize(stream));
  208. return stream;
  209. }
  210. // Serialize a HMeasure instance to a binary output stream
  211. inline std::ostream& operator << (std::ostream& stream, const HMeasure& MeasureHandle)
  212. {
  213. MeasureHandle.SerializeMeasure().Serialize(stream);
  214. return stream;
  215. }
  216. // Deserialize binary input stream to a HMeasure
  217. inline std::istream& operator >> (std::istream& stream, HMeasure& MeasureHandle)
  218. {
  219. MeasureHandle.DeserializeMeasure(HSerializedItem::Deserialize(stream));
  220. return stream;
  221. }
  222. // Serialize a HMatrix instance to a binary output stream
  223. inline std::ostream& operator << (std::ostream& stream, const HMatrix& MatrixID)
  224. {
  225. MatrixID.SerializeMatrix().Serialize(stream);
  226. return stream;
  227. }
  228. // Deserialize binary input stream to a HMatrix
  229. inline std::istream& operator >> (std::istream& stream, HMatrix& MatrixID)
  230. {
  231. MatrixID.DeserializeMatrix(HSerializedItem::Deserialize(stream));
  232. return stream;
  233. }
  234. // Serialize a HBarCode instance to a binary output stream
  235. inline std::ostream& operator << (std::ostream& stream, const HBarCode& BarCodeHandle)
  236. {
  237. BarCodeHandle.SerializeBarCodeModel().Serialize(stream);
  238. return stream;
  239. }
  240. // Deserialize binary input stream to a HBarCode
  241. inline std::istream& operator >> (std::istream& stream, HBarCode& BarCodeHandle)
  242. {
  243. BarCodeHandle.DeserializeBarCodeModel(HSerializedItem::Deserialize(stream));
  244. return stream;
  245. }
  246. // Serialize a HDataCode2D instance to a binary output stream
  247. inline std::ostream& operator << (std::ostream& stream, const HDataCode2D& DataCodeHandle)
  248. {
  249. DataCodeHandle.SerializeDataCode2dModel().Serialize(stream);
  250. return stream;
  251. }
  252. // Deserialize binary input stream to a HDataCode2D
  253. inline std::istream& operator >> (std::istream& stream, HDataCode2D& DataCodeHandle)
  254. {
  255. DataCodeHandle.DeserializeDataCode2dModel(HSerializedItem::Deserialize(stream));
  256. return stream;
  257. }
  258. // Serialize a HObject instance to a binary output stream
  259. inline std::ostream& operator << (std::ostream& stream, const HObject& Object)
  260. {
  261. Object.SerializeObject().Serialize(stream);
  262. return stream;
  263. }
  264. // Deserialize binary input stream to a HObject
  265. inline std::istream& operator >> (std::istream& stream, HObject& Object)
  266. {
  267. Object.DeserializeObject(HSerializedItem::Deserialize(stream));
  268. return stream;
  269. }
  270. // Serialize a HImage instance to a binary output stream
  271. inline std::ostream& operator << (std::ostream& stream, const HImage& Image)
  272. {
  273. Image.SerializeImage().Serialize(stream);
  274. return stream;
  275. }
  276. // Deserialize binary input stream to a HImage
  277. inline std::istream& operator >> (std::istream& stream, HImage& Image)
  278. {
  279. Image.DeserializeImage(HSerializedItem::Deserialize(stream));
  280. return stream;
  281. }
  282. // Serialize a HRegion instance to a binary output stream
  283. inline std::ostream& operator << (std::ostream& stream, const HRegion& Region)
  284. {
  285. Region.SerializeRegion().Serialize(stream);
  286. return stream;
  287. }
  288. // Deserialize binary input stream to a HRegion
  289. inline std::istream& operator >> (std::istream& stream, HRegion& Region)
  290. {
  291. Region.DeserializeRegion(HSerializedItem::Deserialize(stream));
  292. return stream;
  293. }
  294. // Serialize a HXLD instance to a binary output stream
  295. inline std::ostream& operator << (std::ostream& stream, const HXLD& XLD)
  296. {
  297. XLD.SerializeXld().Serialize(stream);
  298. return stream;
  299. }
  300. // Deserialize binary input stream to a HXLD
  301. inline std::istream& operator >> (std::istream& stream, HXLD& XLD)
  302. {
  303. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  304. return stream;
  305. }
  306. // Serialize a HXLDCont instance to a binary output stream
  307. inline std::ostream& operator << (std::ostream& stream, const HXLDCont& XLD)
  308. {
  309. XLD.SerializeXld().Serialize(stream);
  310. return stream;
  311. }
  312. // Deserialize binary input stream to a HXLDCont
  313. inline std::istream& operator >> (std::istream& stream, HXLDCont& XLD)
  314. {
  315. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  316. return stream;
  317. }
  318. // Serialize a HXLDPoly instance to a binary output stream
  319. inline std::ostream& operator << (std::ostream& stream, const HXLDPoly& XLD)
  320. {
  321. XLD.SerializeXld().Serialize(stream);
  322. return stream;
  323. }
  324. // Deserialize binary input stream to a HXLDPoly
  325. inline std::istream& operator >> (std::istream& stream, HXLDPoly& XLD)
  326. {
  327. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  328. return stream;
  329. }
  330. // Serialize a HXLDPara instance to a binary output stream
  331. inline std::ostream& operator << (std::ostream& stream, const HXLDPara& XLD)
  332. {
  333. XLD.SerializeXld().Serialize(stream);
  334. return stream;
  335. }
  336. // Deserialize binary input stream to a HXLDPara
  337. inline std::istream& operator >> (std::istream& stream, HXLDPara& XLD)
  338. {
  339. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  340. return stream;
  341. }
  342. // Serialize a HXLDModPara instance to a binary output stream
  343. inline std::ostream& operator << (std::ostream& stream, const HXLDModPara& XLD)
  344. {
  345. XLD.SerializeXld().Serialize(stream);
  346. return stream;
  347. }
  348. // Deserialize binary input stream to a HXLDModPara
  349. inline std::istream& operator >> (std::istream& stream, HXLDModPara& XLD)
  350. {
  351. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  352. return stream;
  353. }
  354. // Serialize a HXLDExtPara instance to a binary output stream
  355. inline std::ostream& operator << (std::ostream& stream, const HXLDExtPara& XLD)
  356. {
  357. XLD.SerializeXld().Serialize(stream);
  358. return stream;
  359. }
  360. // Deserialize binary input stream to a HXLDExtPara
  361. inline std::istream& operator >> (std::istream& stream, HXLDExtPara& XLD)
  362. {
  363. XLD.DeserializeXld(HSerializedItem::Deserialize(stream));
  364. return stream;
  365. }
  366. // Serialize a HTuple instance to a binary output stream
  367. inline std::ostream& operator << (std::ostream& stream, const HTuple& Tuple)
  368. {
  369. Tuple.SerializeTuple().Serialize(stream);
  370. return stream;
  371. }
  372. // Deserialize binary input stream to a HTuple
  373. inline std::istream& operator >> (std::istream& stream, HTuple& Tuple)
  374. {
  375. Tuple = HTuple::DeserializeTuple(HSerializedItem::Deserialize(stream));
  376. return stream;
  377. }
  378. // Serialize a HOCRBox instance to a binary output stream
  379. inline std::ostream& operator << (std::ostream& stream, const HOCRBox& OcrHandle)
  380. {
  381. OcrHandle.SerializeOcr().Serialize(stream);
  382. return stream;
  383. }
  384. // Deserialize binary input stream to a HOCRBox
  385. inline std::istream& operator >> (std::istream& stream, HOCRBox& OcrHandle)
  386. {
  387. OcrHandle.DeserializeOcr(HSerializedItem::Deserialize(stream));
  388. return stream;
  389. }
  390. // Serialize a HOCRMlp instance to a binary output stream
  391. inline std::ostream& operator << (std::ostream& stream, const HOCRMlp& OCRHandle)
  392. {
  393. OCRHandle.SerializeOcrClassMlp().Serialize(stream);
  394. return stream;
  395. }
  396. // Deserialize binary input stream to a HOCRMlp
  397. inline std::istream& operator >> (std::istream& stream, HOCRMlp& OCRHandle)
  398. {
  399. OCRHandle.DeserializeOcrClassMlp(HSerializedItem::Deserialize(stream));
  400. return stream;
  401. }
  402. // Serialize a HOCRSvm instance to a binary output stream
  403. inline std::ostream& operator << (std::ostream& stream, const HOCRSvm& OCRHandle)
  404. {
  405. OCRHandle.SerializeOcrClassSvm().Serialize(stream);
  406. return stream;
  407. }
  408. // Deserialize binary input stream to a HOCRSvm
  409. inline std::istream& operator >> (std::istream& stream, HOCRSvm& OCRHandle)
  410. {
  411. OCRHandle.DeserializeOcrClassSvm(HSerializedItem::Deserialize(stream));
  412. return stream;
  413. }
  414. // Serialize a HOCV instance to a binary output stream
  415. inline std::ostream& operator << (std::ostream& stream, const HOCV& OCVHandle)
  416. {
  417. OCVHandle.SerializeOcv().Serialize(stream);
  418. return stream;
  419. }
  420. // Deserialize binary input stream to a HOCV
  421. inline std::istream& operator >> (std::istream& stream, HOCV& OCVHandle)
  422. {
  423. OCVHandle.DeserializeOcv(HSerializedItem::Deserialize(stream));
  424. return stream;
  425. }
  426. // Serialize a HClassBox instance to a binary output stream
  427. inline std::ostream& operator << (std::ostream& stream, const HClassBox& ClassifHandle)
  428. {
  429. ClassifHandle.SerializeClassBox().Serialize(stream);
  430. return stream;
  431. }
  432. // Deserialize binary input stream to a HClassBox
  433. inline std::istream& operator >> (std::istream& stream, HClassBox& ClassifHandle)
  434. {
  435. ClassifHandle.DeserializeClassBox(HSerializedItem::Deserialize(stream));
  436. return stream;
  437. }
  438. // Serialize a HClassMlp instance to a binary output stream
  439. inline std::ostream& operator << (std::ostream& stream, const HClassMlp& MLPHandle)
  440. {
  441. MLPHandle.SerializeClassMlp().Serialize(stream);
  442. return stream;
  443. }
  444. // Deserialize binary input stream to a HClassMlp
  445. inline std::istream& operator >> (std::istream& stream, HClassMlp& MLPHandle)
  446. {
  447. MLPHandle.DeserializeClassMlp(HSerializedItem::Deserialize(stream));
  448. return stream;
  449. }
  450. // Serialize a HClassSvm instance to a binary output stream
  451. inline std::ostream& operator << (std::ostream& stream, const HClassSvm& SVMHandle)
  452. {
  453. SVMHandle.SerializeClassSvm().Serialize(stream);
  454. return stream;
  455. }
  456. // Deserialize binary input stream to a HClassSvm
  457. inline std::istream& operator >> (std::istream& stream, HClassSvm& SVMHandle)
  458. {
  459. SVMHandle.DeserializeClassSvm(HSerializedItem::Deserialize(stream));
  460. return stream;
  461. }
  462. // Serialize a HClassGmm instance to a binary output stream
  463. inline std::ostream& operator << (std::ostream& stream, const HClassGmm& GMMHandle)
  464. {
  465. GMMHandle.SerializeClassGmm().Serialize(stream);
  466. return stream;
  467. }
  468. // Deserialize binary input stream to a HClassGmm
  469. inline std::istream& operator >> (std::istream& stream, HClassGmm& GMMHandle)
  470. {
  471. GMMHandle.DeserializeClassGmm(HSerializedItem::Deserialize(stream));
  472. return stream;
  473. }
  474. // Serialize a HDlClassifier instance to a binary output stream
  475. inline std::ostream& operator << (std::ostream& stream, const HDlClassifier& DLClassifierHandle)
  476. {
  477. DLClassifierHandle.SerializeDlClassifier().Serialize(stream);
  478. return stream;
  479. }
  480. // Deserialize binary input stream to a HDlClassifier
  481. inline std::istream& operator >> (std::istream& stream, HDlClassifier& DLClassifierHandle)
  482. {
  483. DLClassifierHandle.DeserializeDlClassifier(HSerializedItem::Deserialize(stream));
  484. return stream;
  485. }
  486. // Serialize a HDlModel instance to a binary output stream
  487. inline std::ostream& operator << (std::ostream& stream, const HDlModel& DLModelHandle)
  488. {
  489. DLModelHandle.SerializeDlModel().Serialize(stream);
  490. return stream;
  491. }
  492. // Deserialize binary input stream to a HDlModel
  493. inline std::istream& operator >> (std::istream& stream, HDlModel& DLModelHandle)
  494. {
  495. DLModelHandle.DeserializeDlModel(HSerializedItem::Deserialize(stream));
  496. return stream;
  497. }
  498. // Serialize a HCamPar instance to a binary output stream
  499. inline std::ostream& operator << (std::ostream& stream, const HCamPar& CameraParam)
  500. {
  501. CameraParam.SerializeCamPar().Serialize(stream);
  502. return stream;
  503. }
  504. // Deserialize binary input stream to a HCamPar
  505. inline std::istream& operator >> (std::istream& stream, HCamPar& CameraParam)
  506. {
  507. CameraParam.DeserializeCamPar(HSerializedItem::Deserialize(stream));
  508. return stream;
  509. }
  510. // Serialize a HPose instance to a binary output stream
  511. inline std::ostream& operator << (std::ostream& stream, const HPose& Pose)
  512. {
  513. Pose.SerializePose().Serialize(stream);
  514. return stream;
  515. }
  516. // Deserialize binary input stream to a HPose
  517. inline std::istream& operator >> (std::istream& stream, HPose& Pose)
  518. {
  519. Pose.DeserializePose(HSerializedItem::Deserialize(stream));
  520. return stream;
  521. }
  522. // Serialize a HHomMat2D instance to a binary output stream
  523. inline std::ostream& operator << (std::ostream& stream, const HHomMat2D& HomMat2D)
  524. {
  525. HomMat2D.SerializeHomMat2d().Serialize(stream);
  526. return stream;
  527. }
  528. // Deserialize binary input stream to a HHomMat2D
  529. inline std::istream& operator >> (std::istream& stream, HHomMat2D& HomMat2D)
  530. {
  531. HomMat2D.DeserializeHomMat2d(HSerializedItem::Deserialize(stream));
  532. return stream;
  533. }
  534. // Serialize a HHomMat3D instance to a binary output stream
  535. inline std::ostream& operator << (std::ostream& stream, const HHomMat3D& HomMat3D)
  536. {
  537. HomMat3D.SerializeHomMat3d().Serialize(stream);
  538. return stream;
  539. }
  540. // Deserialize binary input stream to a HHomMat3D
  541. inline std::istream& operator >> (std::istream& stream, HHomMat3D& HomMat3D)
  542. {
  543. HomMat3D.DeserializeHomMat3d(HSerializedItem::Deserialize(stream));
  544. return stream;
  545. }
  546. // Serialize a HQuaternion instance to a binary output stream
  547. inline std::ostream& operator << (std::ostream& stream, const HQuaternion& Quaternion)
  548. {
  549. Quaternion.SerializeQuat().Serialize(stream);
  550. return stream;
  551. }
  552. // Deserialize binary input stream to a HQuaternion
  553. inline std::istream& operator >> (std::istream& stream, HQuaternion& Quaternion)
  554. {
  555. Quaternion.DeserializeQuat(HSerializedItem::Deserialize(stream));
  556. return stream;
  557. }
  558. // Serialize a HDualQuaternion instance to a binary output stream
  559. inline std::ostream& operator << (std::ostream& stream, const HDualQuaternion& DualQuaternion)
  560. {
  561. DualQuaternion.SerializeDualQuat().Serialize(stream);
  562. return stream;
  563. }
  564. // Deserialize binary input stream to a HDualQuaternion
  565. inline std::istream& operator >> (std::istream& stream, HDualQuaternion& DualQuaternion)
  566. {
  567. DualQuaternion.DeserializeDualQuat(HSerializedItem::Deserialize(stream));
  568. return stream;
  569. }
  570. // Serialize a HSheetOfLightModel instance to a binary output stream
  571. inline std::ostream& operator << (std::ostream& stream, const HSheetOfLightModel& SheetOfLightModelID)
  572. {
  573. SheetOfLightModelID.SerializeSheetOfLightModel().Serialize(stream);
  574. return stream;
  575. }
  576. // Deserialize binary input stream to a HSheetOfLightModel
  577. inline std::istream& operator >> (std::istream& stream, HSheetOfLightModel& SheetOfLightModelID)
  578. {
  579. SheetOfLightModelID.DeserializeSheetOfLightModel(HSerializedItem::Deserialize(stream));
  580. return stream;
  581. }
  582. // Serialize a HMetrologyModel instance to a binary output stream
  583. inline std::ostream& operator << (std::ostream& stream, const HMetrologyModel& MetrologyHandle)
  584. {
  585. MetrologyHandle.SerializeMetrologyModel().Serialize(stream);
  586. return stream;
  587. }
  588. // Deserialize binary input stream to a HMetrologyModel
  589. inline std::istream& operator >> (std::istream& stream, HMetrologyModel& MetrologyHandle)
  590. {
  591. MetrologyHandle.DeserializeMetrologyModel(HSerializedItem::Deserialize(stream));
  592. return stream;
  593. }
  594. // Serialize a HClassKnn instance to a binary output stream
  595. inline std::ostream& operator << (std::ostream& stream, const HClassKnn& KNNHandle)
  596. {
  597. KNNHandle.SerializeClassKnn().Serialize(stream);
  598. return stream;
  599. }
  600. // Deserialize binary input stream to a HClassKnn
  601. inline std::istream& operator >> (std::istream& stream, HClassKnn& KNNHandle)
  602. {
  603. KNNHandle.DeserializeClassKnn(HSerializedItem::Deserialize(stream));
  604. return stream;
  605. }
  606. // Serialize a HOCRKnn instance to a binary output stream
  607. inline std::ostream& operator << (std::ostream& stream, const HOCRKnn& OCRHandle)
  608. {
  609. OCRHandle.SerializeOcrClassKnn().Serialize(stream);
  610. return stream;
  611. }
  612. // Deserialize binary input stream to a HOCRKnn
  613. inline std::istream& operator >> (std::istream& stream, HOCRKnn& OCRHandle)
  614. {
  615. OCRHandle.DeserializeOcrClassKnn(HSerializedItem::Deserialize(stream));
  616. return stream;
  617. }
  618. // Serialize a HOCRCnn instance to a binary output stream
  619. inline std::ostream& operator << (std::ostream& stream, const HOCRCnn& OCRHandle)
  620. {
  621. OCRHandle.SerializeOcrClassCnn().Serialize(stream);
  622. return stream;
  623. }
  624. // Deserialize binary input stream to a HOCRCnn
  625. inline std::istream& operator >> (std::istream& stream, HOCRCnn& OCRHandle)
  626. {
  627. OCRHandle.DeserializeOcrClassCnn(HSerializedItem::Deserialize(stream));
  628. return stream;
  629. }
  630. // Serialize a HClassTrainData instance to a binary output stream
  631. inline std::ostream& operator << (std::ostream& stream, const HClassTrainData& ClassTrainDataHandle)
  632. {
  633. ClassTrainDataHandle.SerializeClassTrainData().Serialize(stream);
  634. return stream;
  635. }
  636. // Deserialize binary input stream to a HClassTrainData
  637. inline std::istream& operator >> (std::istream& stream, HClassTrainData& ClassTrainDataHandle)
  638. {
  639. ClassTrainDataHandle.DeserializeClassTrainData(HSerializedItem::Deserialize(stream));
  640. return stream;
  641. }
  642. // Serialize a HSampleIdentifier instance to a binary output stream
  643. inline std::ostream& operator << (std::ostream& stream, const HSampleIdentifier& SampleIdentifier)
  644. {
  645. SampleIdentifier.SerializeSampleIdentifier().Serialize(stream);
  646. return stream;
  647. }
  648. // Deserialize binary input stream to a HSampleIdentifier
  649. inline std::istream& operator >> (std::istream& stream, HSampleIdentifier& SampleIdentifier)
  650. {
  651. SampleIdentifier.DeserializeSampleIdentifier(HSerializedItem::Deserialize(stream));
  652. return stream;
  653. }
  654. // Serialize a HXLDDistTrans instance to a binary output stream
  655. inline std::ostream& operator << (std::ostream& stream, const HXLDDistTrans& DistanceTransformID)
  656. {
  657. DistanceTransformID.SerializeDistanceTransformXld().Serialize(stream);
  658. return stream;
  659. }
  660. // Deserialize binary input stream to a HXLDDistTrans
  661. inline std::istream& operator >> (std::istream& stream, HXLDDistTrans& DistanceTransformID)
  662. {
  663. DistanceTransformID.DeserializeDistanceTransformXld(HSerializedItem::Deserialize(stream));
  664. return stream;
  665. }
  666. // Serialize a HTextureInspectionModel instance to a binary output stream
  667. inline std::ostream& operator << (std::ostream& stream, const HTextureInspectionModel& TextureInspectionModel)
  668. {
  669. TextureInspectionModel.SerializeTextureInspectionModel().Serialize(stream);
  670. return stream;
  671. }
  672. // Deserialize binary input stream to a HTextureInspectionModel
  673. inline std::istream& operator >> (std::istream& stream, HTextureInspectionModel& TextureInspectionModel)
  674. {
  675. TextureInspectionModel.DeserializeTextureInspectionModel(HSerializedItem::Deserialize(stream));
  676. return stream;
  677. }
  678. // Serialize a HStructuredLightModel instance to a binary output stream
  679. inline std::ostream& operator << (std::ostream& stream, const HStructuredLightModel& StructuredLightModel)
  680. {
  681. StructuredLightModel.SerializeStructuredLightModel().Serialize(stream);
  682. return stream;
  683. }
  684. // Deserialize binary input stream to a HStructuredLightModel
  685. inline std::istream& operator >> (std::istream& stream, HStructuredLightModel& StructuredLightModel)
  686. {
  687. StructuredLightModel.DeserializeStructuredLightModel(HSerializedItem::Deserialize(stream));
  688. return stream;
  689. }
  690. // Serialize a HHandle instance to a binary output stream
  691. inline std::ostream& operator << (std::ostream& stream, const HHandle& Handle)
  692. {
  693. Handle.SerializeHandle().Serialize(stream);
  694. return stream;
  695. }
  696. // Deserialize binary input stream to a HHandle
  697. inline std::istream& operator >> (std::istream& stream, HHandle& Handle)
  698. {
  699. Handle.DeserializeHandle(HSerializedItem::Deserialize(stream));
  700. return stream;
  701. }
  702. // Serialize a HString instance to an output stream
  703. inline std::ostream& operator<<(std::ostream& stream, const HString& val)
  704. {
  705. return (stream << val.TextA());
  706. }
  707. #if defined(_WIN32)
  708. // Serialize a HString instance to an output stream
  709. inline std::wostream& operator<<(std::wostream& stream, const HString& val)
  710. {
  711. return (stream << val.TextW());
  712. }
  713. #endif
  714. } // namespace HalconCpp
  715. #endif // HCPP_NO_USE_IOSTREAM
  716. #endif // HCPP_HIOSTREAM