CVB++ 15.0
Loading...
Searching...
No Matches
decl_config_2d_codes.hpp
1#pragma once
2
3#include "../../_cexports/c_code_reader.h"
4
5namespace Cvb
6{
7 CVB_BEGIN_INLINE_NS
8
9 namespace CodeReader
10 {
11 class Decoder;
12
13 namespace Config
14 {
15#pragma region DataMatrix
17
35 class DataMatrix final : public ConfigBase<DataMatrix>
36 {
37 friend class Cvb::CodeReader::Decoder;
38
39 public:
41
46
48
52
54
59
61
64 bool IsMirroringEnabled() const;
65
67
72
74
78
80
86 DataMatrix &SetMinimumSize(int size);
87
89
93 int MinimumSize() const;
94
96
102 DataMatrix &SetMaximumSize(int size);
103
105
109 int MaximumSize() const;
110
112
119
121
125 int MinNumberModules() const;
126
128
135
137
141 int MaxNumberModules() const;
142
144
150 DataMatrix &SetMaxModuleSize(int size);
151
153
157 int MaxModuleSize() const;
158
160
167
169
173 int MaxLineFilterSize() const;
174
176
183
185
189
190 private:
191 using ConfigBase<DataMatrix>::ConfigBase;
192
193 enum class Properties
194 {
195 Rect = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_Rect,
196 RectExtended = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_RectExtended,
197 Polarity = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_Polarity,
198 Mirror = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_Mirror,
199 MinSize = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MinimumSize,
200 MaxSize = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MaximumSize,
201 MinNumModules = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MinNumModule,
202 MaxNumModules = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MaxNumModule,
203 MaxModuleSize = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MaxModuleSize,
204 MaxLineFilterSize = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_MaxLineFilterSize,
205 FastDataMatrixSearch = CExports::CVCRSymbologyPropertiesDataMatrix::CVCRSPDM_FastDataMatrixSearch
206 };
207 };
208
209 template <>
210 struct Mapper<Symbology::DataMatrix>
211 {
212 using Type = Config::DataMatrix;
213 };
214
215 template <>
216 struct ReverseMapper<Config::DataMatrix>
217 {
218 static constexpr Symbology type = Symbology::DataMatrix;
219 };
220#pragma endregion
221
222#pragma region QR and MicroQR
224
239 class QR : public ConfigBase<QR>
240 {
241 friend class Cvb::CodeReader::Decoder;
242
243 public:
245
249 QR &SetPolarity(Polarity value);
250
252
256
258
262 QR &SetMirroringEnabled(bool value);
263
265
268 bool IsMirroringEnabled() const;
269
271
278 QR &SetPreciseCornersEnabled(bool value);
279
281
284 bool IsPreciseCornersEnabled() const;
285
286 protected:
287 QR(Decoder &decoder) noexcept
288 : ConfigBase<QR>(decoder)
289 {
290 }
291
292 enum class Properties
293 {
294 Polarity = CExports::CVCRSymbologyPropertiesQR::CVCRSPQR_Polarity,
295 Mirror = CExports::CVCRSymbologyPropertiesQR::CVCRSPQR_Mirror,
296 PreciseCorner = CExports::CVCRSymbologyPropertiesQR::CVCRSPQR_PreciseCornerQR
297 };
298 };
299
300 template <>
301 struct Mapper<Symbology::QR>
302 {
303 using Type = Config::QR;
304 };
305
306 template <>
307 struct ReverseMapper<Config::QR>
308 {
309 static constexpr Symbology type = Symbology::QR;
310 };
311
313
328 class MicroQR final : public QR
329 {
330 friend class Cvb::CodeReader::Decoder;
331
332 private:
333 MicroQR(Decoder &decoder) noexcept
334 : QR(decoder)
335 {
336 }
337
338 public:
340
343 bool Enabled() const;
344
346
355 MicroQR &Enable();
356
358
361 MicroQR &Disable();
362 };
363
364 template <>
365 struct Mapper<Symbology::MicroQR>
366 {
367 using Type = Config::MicroQR;
368 };
369
370 template <>
371 struct ReverseMapper<Config::MicroQR>
372 {
373 static constexpr Symbology type = Symbology::MicroQR;
374 };
375#pragma endregion
376
377#pragma region Pdf417 and MicroPdf417
379
394 class Pdf417 final : public ConfigBase<Pdf417>
395 {
396 friend class Cvb::CodeReader::Decoder;
397
398 private:
399 Pdf417(Decoder &decoder) noexcept
400 : ConfigBase<Pdf417>(decoder)
401 {
402 }
403 };
404
405 template <>
406 struct Mapper<Symbology::Pdf417>
407 {
408 using Type = Config::Pdf417;
409 };
410
411 template <>
412 struct ReverseMapper<Config::Pdf417>
413 {
414 static constexpr Symbology type = Symbology::Pdf417;
415 };
416
418
433 class MicroPdf417 final : public ConfigBase<MicroPdf417>
434 {
435 friend class Cvb::CodeReader::Decoder;
436
437 private:
438 MicroPdf417(Decoder &decoder) noexcept
439 : ConfigBase<MicroPdf417>(decoder)
440 {
441 }
442 };
443
444 template <>
445 struct Mapper<Symbology::MicroPdf417>
446 {
447 using Type = Config::MicroPdf417;
448 };
449
450 template <>
451 struct ReverseMapper<Config::MicroPdf417>
452 {
453 static constexpr Symbology type = Symbology::MicroPdf417;
454 };
455#pragma endregion
456
457 } // namespace Config
458 } // namespace CodeReader
459
460 CVB_END_INLINE_NS
461} // namespace Cvb
Configuration class for Data Matrix codes.
Definition decl_config_2d_codes.hpp:36
DataMatrix & SetMirroringEnabled(bool value)
Enables or disables mirroring based on the given value.
Definition detail_config_2d_codes.hpp:21
bool IsFastDataMatrixSearchEnabled() const
Checks whether fast Data Matrix search is enabled.
Definition detail_config_2d_codes.hpp:133
int MaxNumberModules() const
Gets the maximum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:103
DataMatrix & SetMinimumSize(int size)
Sets the minimum Data Matrix size.
Definition detail_config_2d_codes.hpp:68
DataMatrix & SetFastDataMatrixSearchEnabled(bool value)
Enables or disables fast Data Matrix search based on the given value.
Definition detail_config_2d_codes.hpp:128
Config::RectangularDecoding RectangularDecoding() const
Gets the currently configured rectangular decoding mode.
Definition detail_config_2d_codes.hpp:50
int MaximumSize() const
Gets the maximum Data Matrix size.
Definition detail_config_2d_codes.hpp:83
DataMatrix & SetMaximumSize(int size)
Sets the maximum Data Matrix size.
Definition detail_config_2d_codes.hpp:78
int MinNumberModules() const
Gets the minimum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:93
DataMatrix & SetMinNumberModules(int value)
Sets the minimum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:88
bool IsMirroringEnabled() const
Checks whether mirroring is enabled.
Definition detail_config_2d_codes.hpp:26
DataMatrix & SetPolarity(Polarity value)
Sets polarity mode for decoding.
Definition detail_config_2d_codes.hpp:11
Config::Polarity Polarity() const
Gets the currently configured polarity mode.
Definition detail_config_2d_codes.hpp:16
int MaxLineFilterSize() const
Gets the maximum line filter size in pixels.
Definition detail_config_2d_codes.hpp:123
DataMatrix & SetMaxLineFilterSize(int size)
Sets the maximum line filter size in pixels.
Definition detail_config_2d_codes.hpp:118
DataMatrix & SetMaxNumberModules(int value)
Sets the maximum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:98
DataMatrix & SetRectangularDecoding(RectangularDecoding value)
Configures the rectangular decoding mode.
Definition detail_config_2d_codes.hpp:31
DataMatrix & SetMaxModuleSize(int size)
Sets the maximum module size of Data Matrix in pixels.
Definition detail_config_2d_codes.hpp:108
int MaxModuleSize() const
Gets the maximum module size of Data Matrix in pixels.
Definition detail_config_2d_codes.hpp:113
int MinimumSize() const
Gets the minimum Data Matrix size.
Definition detail_config_2d_codes.hpp:73
Configuration class for MicroPDF417 codes.
Definition decl_config_2d_codes.hpp:434
Configuration class for Micro QR codes.
Definition decl_config_2d_codes.hpp:329
bool Enabled() const
Checks if decoding for MicroQR codes is enabled.
Definition detail_config_2d_codes.hpp:184
MicroQR & Enable()
Enables decoding for the MicroQR codes.
Definition detail_config_2d_codes.hpp:170
MicroQR & Disable()
Disables decoding for MicroQR codes.
Definition detail_config_2d_codes.hpp:177
Configuration class for PDF417 codes.
Definition decl_config_2d_codes.hpp:395
Configuration class for QR codes.
Definition decl_config_2d_codes.hpp:240
QR & SetMirroringEnabled(bool value)
Enables or disables mirroring based on the given value.
Definition detail_config_2d_codes.hpp:150
bool IsMirroringEnabled() const
Check whether mirroring is enabled.
Definition detail_config_2d_codes.hpp:155
bool IsPreciseCornersEnabled() const
Check whether the calculation of more precise corner coordinates is enabled.
Definition detail_config_2d_codes.hpp:165
QR & SetPolarity(Polarity value)
Sets polarity mode for decoding.
Definition detail_config_2d_codes.hpp:140
Config::Polarity Polarity() const
Gets the currently configured polarity mode.
Definition detail_config_2d_codes.hpp:145
QR & SetPreciseCornersEnabled(bool value)
Enables or disables the calculation of more precise corner coordinates.
Definition detail_config_2d_codes.hpp:160
Class for decoding.
Definition decl_decoder.hpp:116
This namespace contains the configuration classes for all supported codes.
Definition decl_config_2d_codes.hpp:14
Polarity
Enumeration of code polarity options for 2D codes.
Definition decl_config_base.hpp:184
RectangularDecoding
Enumeration for rectangular decoding modes for DataMatrix codes.
Definition decl_config_base.hpp:195
Namespace for all decoding functionalities.
Definition decl_config_2d_codes.hpp:10
Symbology
Enum class listing all supported symbologies.
Definition decl_config_base.hpp:35
@ MicroQR
Micro QR code.
Definition decl_config_base.hpp:52
@ QR
QR code.
Definition decl_config_base.hpp:47
@ Pdf417
PDF417.
Definition decl_config_base.hpp:97
@ MicroPdf417
MicroPDF417.
Definition decl_config_base.hpp:102
@ DataMatrix
Data Matrix.
Definition decl_config_base.hpp:42
Root namespace for the Image Manager interface.
Definition version.hpp:11