HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
glyph_metrics.hpp
1// Copyright Take Vos 2019, 2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "../utility/utility.hpp"
8#include "../geometry/module.hpp"
9#include "../macros.hpp"
10
11hi_export_module(hikogui.font.glyph_metrics);
12
13namespace hi::inline v1 {
14
19hi_export struct glyph_metrics {
22 aarectangle bounding_rectangle = {};
23
30 float left_side_bearing = 0.0f;
31
36 float right_side_bearing = 0.0f;
37
40 float advance = 0.0f;
41
42 glyph_metrics() noexcept = default;
43 glyph_metrics(glyph_metrics const &) noexcept = default;
44 glyph_metrics(glyph_metrics &&) noexcept = default;
45 glyph_metrics &operator=(glyph_metrics const &) noexcept = default;
46 glyph_metrics &operator=(glyph_metrics &&) noexcept = default;
47
50 [[nodiscard]] constexpr friend glyph_metrics operator*(float const &lhs, glyph_metrics const &rhs) noexcept
51 {
53 r.bounding_rectangle = scale2(lhs) * rhs.bounding_rectangle;
54 r.left_side_bearing = lhs * rhs.left_side_bearing;
55 r.right_side_bearing = lhs * rhs.right_side_bearing;
56 r.advance = lhs * rhs.advance;
57 return r;
58 }
59};
60
61} // namespace hi::inline v1
DOXYGEN BUG.
Definition algorithm.hpp:16
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
Definition glyph_metrics.hpp:19
aarectangle bounding_rectangle
Definition glyph_metrics.hpp:22
float right_side_bearing
Definition glyph_metrics.hpp:36
float advance
Definition glyph_metrics.hpp:40
float left_side_bearing
Definition glyph_metrics.hpp:30