30 enum class Type : uint8_t
54 writer.Write(
"t",
static_cast<uint8_t
>(
type));
55 writer.Write(
"a",
angle);
66 :
center(std::move(pointArg))
73 auto isAngleEqual = std::abs(angle - m.
angle) < std::numeric_limits<Angle>::epsilon();
74 return center == m.
center && type == m.
type && isAngleEqual;
76 bool operator!=(
const CriticalPoint& m)
const
87 virtual ~CriticalPoint() =
default;
89 CriticalPoint(
const CriticalPoint& m) =
default;
90 CriticalPoint(CriticalPoint&& m) =
delete;
91 CriticalPoint& operator=(
const CriticalPoint& m) =
default;
92 CriticalPoint& operator=(CriticalPoint&& m) =
delete;
113 auto rect =
Rectangle{ { m->center.x -
static_cast<int>(r), m->center.y -
static_cast<int>(r) },
114 { m->center.x +
static_cast<int>(r), m->center.y -
static_cast<int>(r) },
115 { m->center.x +
static_cast<int>(r), m->center.y +
static_cast<int>(r) },
116 { m->center.x -
static_cast<int>(r), m->center.y +
static_cast<int>(r) } };
118 rectShape.DrawIn(drawer);
122 drawer.DrawCircle(
Circle{ { m->center.x, m->center.y }, r }, a);
124 auto angleLine =
Line{ { m->center.x, m->center.y }, m->angle, al };
125 drawer.DrawLine(angleLine, a);
139 unsigned int angleLength)
140 : m(std::move(point))
154 : m(std::move(point))
157 , al(DefaultAngleLength)
169 std::shared_ptr<CriticalPoint> m;
170 static constexpr Radius DefaultRadius = 5;
173 static constexpr unsigned int DefaultAngleLength = 10;
190 for (
const auto& mi : m)
208 unsigned int angleLength)
226 , al(DefaultAngleLength)
237 std::vector<std::shared_ptr<CriticalPoint>> m;
238 static constexpr Radius DefaultRadius = 5;
241 static constexpr unsigned int DefaultAngleLength = 10;
It holds circle dimensions.
Definition ImageAttribute.h:691
It draws CriticalPoint into image.
Definition CriticalPoint.h:102
CriticalPointShape(std::shared_ptr< CriticalPoint > point, ImageShapeAttributes attr)
Create CriticalPoint shape.
Definition CriticalPoint.h:152
void DrawIn(ImageShapeDrawer &drawer) const final
It draws CriticalPoint into image.
Definition CriticalPoint.h:108
CriticalPointShape(std::shared_ptr< CriticalPoint > point, Radius radius, ImageShapeAttributes attr, unsigned int angleLength)
Create CriticalPoint shape.
Definition CriticalPoint.h:135
It represents a particular CriticalPoint.
Definition CriticalPoint.h:24
void WriteTo(Writer &writer) const final
Write itself into writer.
Definition CriticalPoint.h:50
Point center
CriticalPoint point.
Definition CriticalPoint.h:39
CriticalPoint(Point pointArg, Type typeArg, Angle angleArg)
It creates CriticalPoint with given parameters.
Definition CriticalPoint.h:64
Type
Type of CriticalPoint.
Definition CriticalPoint.h:30
@ DELTA
Delta is point on a ridge at or nearest to the point of divergence of two type lines (one of the two ...
Definition CriticalPoint.h:36
@ CORE
Core is topmost point on the innermost recurving ridge line of a fingerprint iso_19794-1_2011.
Definition CriticalPoint.h:32
Type type
CriticalPoint type (core/delta).
Definition CriticalPoint.h:41
Angle angle
The orientation of the point is represented in degrees, with zero degrees pointing horizontally and t...
Definition CriticalPoint.h:44
It draws collection of CriticalPoint into image.
Definition CriticalPoint.h:181
void DrawIn(ImageShapeDrawer &drawer) const final
It draws all CriticalPoint into image.
Definition CriticalPoint.h:187
CriticalPointsShape(const std::vector< std::shared_ptr< CriticalPoint > > &point, ImageShapeAttributes attr)
Create CriticalPoint shape.
Definition CriticalPoint.h:221
CriticalPointsShape(const std::vector< std::shared_ptr< CriticalPoint > > &point, Radius radius, ImageShapeAttributes attr, unsigned int angleLength)
Create CriticalPoint shape.
Definition CriticalPoint.h:204
It holds shape attributes such as color and line width.
Definition ImageShape.h:22
It is used by ImageShape to draw its shape.
Definition ImageShape.h:108
It holds line points.
Definition ImageAttribute.h:615
It holds X and Y coordinates of point.
Definition ImageAttribute.h:312
It holds rectangle and draws it.
Definition ImageShape.h:163
It holds rectangle vertexes, width, height.
Definition ImageAttribute.h:357
Provides interface for serialization of all classes.
Definition Writer.h:164
float Angle
Angle in degrees.
Definition ImageAttribute.h:122
unsigned int Radius
Radius.
Definition ImageAttribute.h:127