CVB++ 14.0
grade_result_2d_base.hpp
1#pragma once
2
3#include "grade_result_base.hpp"
4#include "../../angle.hpp"
5
6namespace Cvb
7{
8 CVB_BEGIN_INLINE_NS
9
10 namespace Barcode
11 {
12 namespace Results
13 {
15
18 : public GradeResultBase
19 {
20 public:
21 GradeResult2DBase(CExports::CVC_BC_INFO& handle)
22 : GradeResultBase{ handle }
23 {
24 }
25
26 GradeResult2DBase() = default;
27
29
33 virtual double GradeSymbolContrast() const
34 {
35 CheckHandlePointerAndThrow();
36 return static_cast<double>(handle_->grade_symbol_contrast);
37 }
38
40
44 virtual double SymbolContrast() const override
45 {
46 CheckHandlePointerAndThrow();
47 return static_cast<double>(handle_->symbol_contrast);
48 }
49
51
55 virtual double ReflectanceMin() const override
56 {
57 CheckHandlePointerAndThrow();
58 return static_cast<double>(handle_->r_min);
59 }
60
62
66 virtual double ReflectanceMax() const override
67 {
68 CheckHandlePointerAndThrow();
69 return static_cast<double>(handle_->r_max);
70 }
71
73
77 virtual Cvb::Angle Distortion() const
78 {
79 CheckHandlePointerAndThrow();
80 return Angle::FromDegrees(static_cast<double>(handle_->angle_of_distortion) / 10.0);
81 }
82
84
88 virtual double AxialNonUniformity() const
89 {
90 CheckHandlePointerAndThrow();
91 return static_cast<double>(handle_->axial_nonuniformity) / 100.0;
92 }
93
95
99 virtual double GridNonUniformity() const
100 {
101 CheckHandlePointerAndThrow();
102 return static_cast<double>(handle_->grid_nonuniformity) / 100.0;
103 }
104
106
110 virtual double GradeAxialNonUniformity() const
111 {
112 CheckHandlePointerAndThrow();
113 return static_cast<double>(handle_->grade_axial_nonuniformity);
114 }
115
117
121 virtual double GradeDecode() const override
122 {
123 CheckHandlePointerAndThrow();
124 return static_cast<double>(handle_->grade_reference_decode);
125 }
126
128
132 virtual double GradeUnusedErrorCorrection() const
133 {
134 CheckHandlePointerAndThrow();
135 return static_cast<double>(handle_->grade_unused_error_correction);
136 }
137
139
143 virtual double GradeOverall() const override
144 {
145 CheckHandlePointerAndThrow();
146 return static_cast<double>(handle_->scan_grade);
147 }
148
149 };
150 }
151 using GradeResult2DBase = Results::GradeResult2DBase;
152 }
153
154 CVB_END_INLINE_NS
155}
Object for convenient and type - safe handling of angles.
Definition: angle.hpp:19
static Angle FromDegrees(double deg, bool trim=false) noexcept
Create an angle in degrees.
Definition: angle.hpp:30
Configuration to access parameters of GradeResult2DBase.
Definition: grade_result_2d_base.hpp:19
virtual double GradeAxialNonUniformity() const
Grade of the axial non-uniformity (0...4).
Definition: grade_result_2d_base.hpp:110
virtual double GradeOverall() const override
Overall grading result.
Definition: grade_result_2d_base.hpp:143
virtual double SymbolContrast() const override
Measured Symbol Contrast in % of the scan reflectance limits.
Definition: grade_result_2d_base.hpp:44
virtual double ReflectanceMax() const override
Maximum contrast found during grading.
Definition: grade_result_2d_base.hpp:66
virtual double GradeUnusedErrorCorrection() const
Grade of the amount of unused error correction information.
Definition: grade_result_2d_base.hpp:132
virtual double GradeDecode() const override
4 if decoding succeeded, 0 if it failed.
Definition: grade_result_2d_base.hpp:121
virtual double GradeSymbolContrast() const
Symbol Contrast Grade (0...4).
Definition: grade_result_2d_base.hpp:33
virtual double AxialNonUniformity() const
Axial non-uniformity factor.
Definition: grade_result_2d_base.hpp:88
virtual Cvb::Angle Distortion() const
Angle of distortion.
Definition: grade_result_2d_base.hpp:77
virtual double GridNonUniformity() const
Grid non-uniformity factor.
Definition: grade_result_2d_base.hpp:99
virtual double ReflectanceMin() const override
Minimum contrast found during grading.
Definition: grade_result_2d_base.hpp:55
Configuration to access parameters of GradeResultBase.
Definition: grade_result_base.hpp:20
Root namespace for the Image Manager interface.
Definition: c_barcode.h:24