EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
EBGeometry_ViewerFont.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Robert Marskar <robert.marskar@sintef.no>
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
13#ifndef EBGEOMETRY_VIEWERFONT_HPP
14#define EBGEOMETRY_VIEWERFONT_HPP
15
16namespace EBGeometry::Render::ViewerDetail {
17
21inline constexpr int GlyphWidth = 6;
22
26inline constexpr int GlyphHeight = 13;
27
32inline constexpr unsigned char Glyphs[95][GlyphHeight] = {
33 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space
34 {0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // !
35 {0x00, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // "
36 {0x00, 0x00, 0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00, 0x00}, // #
37 {0x00, 0x00, 0x08, 0x1E, 0x28, 0x28, 0x1C, 0x0A, 0x0A, 0x3C, 0x08, 0x00, 0x00}, // $
38 {0x00, 0x00, 0x12, 0x2A, 0x14, 0x04, 0x08, 0x10, 0x14, 0x2A, 0x24, 0x00, 0x00}, // %
39 {0x00, 0x00, 0x00, 0x10, 0x28, 0x28, 0x10, 0x28, 0x26, 0x24, 0x1A, 0x00, 0x00}, // &
40 {0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // '
41 {0x00, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x00}, // (
42 {0x00, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x00}, // )
43 {0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // *
44 {0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00}, // +
45 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x08, 0x10, 0x00}, // ,
46 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // -
47 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x08, 0x00}, // .
48 {0x00, 0x00, 0x02, 0x02, 0x04, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, 0x00}, // /
49 {0x00, 0x00, 0x08, 0x14, 0x22, 0x22, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, 0x00}, // 0
50 {0x00, 0x00, 0x08, 0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00}, // 1
51 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x02, 0x04, 0x08, 0x10, 0x20, 0x3E, 0x00, 0x00}, // 2
52 {0x00, 0x00, 0x3E, 0x02, 0x04, 0x08, 0x1C, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // 3
53 {0x00, 0x00, 0x04, 0x04, 0x0C, 0x14, 0x14, 0x24, 0x3E, 0x04, 0x04, 0x00, 0x00}, // 4
54 {0x00, 0x00, 0x3E, 0x20, 0x20, 0x2C, 0x32, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // 5
55 {0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x3C, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6
56 {0x00, 0x00, 0x3E, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x00, 0x00}, // 7
57 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8
58 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // 9
59 {0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x08, 0x00, 0x00, 0x08, 0x1C, 0x08, 0x00}, // :
60 {0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x08, 0x00, 0x00, 0x0C, 0x08, 0x10, 0x00}, // ;
61 {0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00}, // <
62 {0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00}, // =
63 {0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00}, // >
64 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x02, 0x04, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // ?
65 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x26, 0x2A, 0x2A, 0x2C, 0x20, 0x1E, 0x00, 0x00}, // @
66 {0x00, 0x00, 0x08, 0x14, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00}, // A
67 {0x00, 0x00, 0x3C, 0x12, 0x12, 0x12, 0x1C, 0x12, 0x12, 0x12, 0x3C, 0x00, 0x00}, // B
68 {0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1C, 0x00, 0x00}, // C
69 {0x00, 0x00, 0x3C, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x3C, 0x00, 0x00}, // D
70 {0x00, 0x00, 0x3E, 0x20, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x3E, 0x00, 0x00}, // E
71 {0x00, 0x00, 0x3E, 0x20, 0x20, 0x20, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00}, // F
72 {0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x20, 0x26, 0x22, 0x22, 0x1C, 0x00, 0x00}, // G
73 {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // H
74 {0x00, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // I
75 {0x00, 0x00, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x24, 0x18, 0x00, 0x00}, // J
76 {0x00, 0x00, 0x22, 0x22, 0x24, 0x28, 0x30, 0x28, 0x24, 0x22, 0x22, 0x00, 0x00}, // K
77 {0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3E, 0x00, 0x00}, // L
78 {0x00, 0x00, 0x22, 0x22, 0x36, 0x2A, 0x2A, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // M
79 {0x00, 0x00, 0x22, 0x32, 0x32, 0x2A, 0x2A, 0x26, 0x26, 0x22, 0x22, 0x00, 0x00}, // N
80 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // O
81 {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00}, // P
82 {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x2A, 0x1C, 0x02, 0x00}, // Q
83 {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x28, 0x24, 0x22, 0x22, 0x00, 0x00}, // R
84 {0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x1C, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // S
85 {0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // T
86 {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // U
87 {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x14, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // V
88 {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x2A, 0x2A, 0x2A, 0x2A, 0x14, 0x00, 0x00}, // W
89 {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x14, 0x14, 0x22, 0x22, 0x00, 0x00}, // X
90 {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y
91 {0x00, 0x00, 0x3E, 0x02, 0x04, 0x04, 0x08, 0x10, 0x10, 0x20, 0x3E, 0x00, 0x00}, // Z
92 {0x00, 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C, 0x00}, // [
93 {0x00, 0x00, 0x20, 0x20, 0x10, 0x10, 0x08, 0x04, 0x04, 0x02, 0x02, 0x00, 0x00}, // backslash
94 {0x00, 0x1C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1C, 0x00}, // ]
95 {0x00, 0x00, 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ^
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00}, // _
97 {0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // `
98 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x02, 0x1E, 0x22, 0x26, 0x1A, 0x00, 0x00}, // a
99 {0x00, 0x00, 0x20, 0x20, 0x20, 0x3C, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // b
100 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x20, 0x20, 0x22, 0x1C, 0x00, 0x00}, // c
101 {0x00, 0x00, 0x02, 0x02, 0x02, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // d
102 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x3E, 0x20, 0x22, 0x1C, 0x00, 0x00}, // e
103 {0x00, 0x00, 0x0C, 0x12, 0x10, 0x10, 0x3C, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00}, // f
104 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x1E, 0x02, 0x22, 0x1C}, // g
105 {0x00, 0x00, 0x20, 0x20, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // h
106 {0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // i
107 {0x00, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x24, 0x24, 0x18}, // j
108 {0x00, 0x00, 0x20, 0x20, 0x20, 0x24, 0x28, 0x30, 0x28, 0x24, 0x22, 0x00, 0x00}, // k
109 {0x00, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // l
110 {0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2A, 0x2A, 0x2A, 0x2A, 0x22, 0x00, 0x00}, // m
111 {0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // n
112 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // o
113 {0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x20, 0x20}, // p
114 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x02}, // q
115 {0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x32, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00}, // r
116 {0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x18, 0x04, 0x22, 0x1C, 0x00, 0x00}, // s
117 {0x00, 0x00, 0x00, 0x10, 0x10, 0x3C, 0x10, 0x10, 0x10, 0x12, 0x0C, 0x00, 0x00}, // t
118 {0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x00, 0x00}, // u
119 {0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x00, 0x00}, // v
120 {0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x2A, 0x2A, 0x2A, 0x14, 0x00, 0x00}, // w
121 {0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x00, 0x00}, // x
122 {0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x02, 0x22, 0x1C}, // y
123 {0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x04, 0x08, 0x10, 0x20, 0x3E, 0x00, 0x00}, // z
124 {0x00, 0x06, 0x08, 0x08, 0x08, 0x08, 0x30, 0x08, 0x08, 0x08, 0x08, 0x06, 0x00}, // {
125 {0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // |
126 {0x00, 0x30, 0x08, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00}, // }
127 {0x00, 0x00, 0x12, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~
128};
129
130} // namespace EBGeometry::Render::ViewerDetail
131
132#endif
constexpr int GlyphWidth
Width of a glyph in pixels.
Definition EBGeometry_ViewerFont.hpp:21
constexpr unsigned char Glyphs[95][GlyphHeight]
The glyphs of the characters from ' ' (32) to '~' (126): one byte per row from the top,...
Definition EBGeometry_ViewerFont.hpp:32
constexpr int GlyphHeight
Height of a glyph in pixels.
Definition EBGeometry_ViewerFont.hpp:26