Gamp v0.0.7-36-g24b1eb6
Gamp: Graphics, Audio, Multimedia and Processing
Loading...
Searching...
No Matches
Glyph03FreeMonoRegular_M.hpp
Go to the documentation of this file.
1/*
2 * Author: Sven Gothel <sgothel@jausoft.com>
3 * Copyright Gothel Software e.K.
4 *
5 * SPDX-License-Identifier: MIT
6 *
7 * This Source Code Form is subject to the terms of the MIT License
8 * If a copy of the MIT was not distributed with this file,
9 * you can obtain one at https://opensource.org/license/mit/.
10 */
11
12#ifndef GAMP_DEMOS_GRAPH_TESTSHAPES_GLYPH03FREEMONO_M_HPP_
13#define GAMP_DEMOS_GRAPH_TESTSHAPES_GLYPH03FREEMONO_M_HPP_
14
16#include <jau/debug.hpp>
17
18/**
19 * GPU based resolution independent test object
20 * - FreeMono-Regular, capital case 'M'
21 * - TTF Shape for Glyph 48
22 */
24
25 public:
27 using namespace gamp::graph;
28
29 constexpr OutlineShape::size_type pos0 = 0;
30
31 if( true ) {
32 // Start TTF Shape for Glyph 48
33 // GlyphShape<48>: offset 0 of 45/45 points
34 // pM[044] P[483/522, on true, end true]
35 // p0[000] P[326/169, on true, end false]
36 // p1[001] P[280/169, on true, end false]
37 // p2[002] P[121/522, on true, end false]
38 // 000: B0a: move-to p0
39 // Shape.MoveTo:
40 shape.closeLastOutline(false);
41 shape.addEmptyOutline();
42 shape.addVertex(pos0, 0.326000f, 0.169000f, 0, true);
43 // 000: B1: line-to p0-p1
44 // Shape.LineTo:
45 shape.addVertex(pos0, 0.280000f, 0.169000f, 0, true);
46 // GlyphShape<48>: offset 1 of 45/45 points
47 // pM[000] P[326/169, on true, end false]
48 // p0[001] P[280/169, on true, end false]
49 // p1[002] P[121/522, on true, end false]
50 // p2[003] P[113/522, on true, end false]
51 // 001: B1: line-to p0-p1
52 // Shape.LineTo:
53 shape.addVertex(pos0, 0.121000f, 0.522000f, 0, true);
54 // GlyphShape<48>: offset 2 of 45/45 points
55 // pM[001] P[280/169, on true, end false]
56 // p0[002] P[121/522, on true, end false]
57 // p1[003] P[113/522, on true, end false]
58 // p2[004] P[113/41, on true, end false]
59 // 002: B1: line-to p0-p1
60 // Shape.LineTo:
61 shape.addVertex(pos0, 0.113000f, 0.522000f, 0, true);
62 // GlyphShape<48>: offset 3 of 45/45 points
63 // pM[002] P[121/522, on true, end false]
64 // p0[003] P[113/522, on true, end false]
65 // p1[004] P[113/41, on true, end false]
66 // p2[005] P[187/41, on true, end false]
67 // 003: B1: line-to p0-p1
68 // Shape.LineTo:
69 shape.addVertex(pos0, 0.113000f, 0.041000f, 0, true);
70 // GlyphShape<48>: offset 4 of 45/45 points
71 // pM[003] P[113/522, on true, end false]
72 // p0[004] P[113/41, on true, end false]
73 // p1[005] P[187/41, on true, end false]
74 // p2[006] P[215/41, on false, end false]
75 // 004: B1: line-to p0-p1
76 // Shape.LineTo:
77 shape.addVertex(pos0, 0.187000f, 0.041000f, 0, true);
78 // GlyphShape<48>: offset 5 of 45/45 points
79 // pM[004] P[113/41, on true, end false]
80 // p0[005] P[187/41, on true, end false]
81 // p1[006] P[215/41, on false, end false]
82 // p2[007] P[215/21, on true, end false]
83 // 005: B2: quad-to p0-p1-p2
84 // Shape.QuadTo:
85 shape.addVertex(pos0, 0.215000f, 0.041000f, 0, false);
86 shape.addVertex(pos0, 0.215000f, 0.021000f, 0, true);
87 // GlyphShape<48>: offset 7 of 45/45 points
88 // pM[006] P[215/41, on false, end false]
89 // p0[007] P[215/21, on true, end false]
90 // p1[008] P[215/0, on false, end false]
91 // p2[009] P[187/0, on true, end false]
92 // 007: B2: quad-to p0-p1-p2
93 // Shape.QuadTo:
94 shape.addVertex(pos0, 0.215000f, 0.000000f, 0, false);
95 shape.addVertex(pos0, 0.187000f, 0.000000f, 0, true);
96 // GlyphShape<48>: offset 9 of 45/45 points
97 // pM[008] P[215/0, on false, end false]
98 // p0[009] P[187/0, on true, end false]
99 // p1[010] P[38/0, on true, end false]
100 // p2[011] P[11/0, on false, end false]
101 // 009: B1: line-to p0-p1
102 // Shape.LineTo:
103 shape.addVertex(pos0, 0.038000f, 0.000000f, 0, true);
104 // GlyphShape<48>: offset 10 of 45/45 points
105 // pM[009] P[187/0, on true, end false]
106 // p0[010] P[38/0, on true, end false]
107 // p1[011] P[11/0, on false, end false]
108 // p2[012] P[11/21, on true, end false]
109 // 010: B2: quad-to p0-p1-p2
110 // Shape.QuadTo:
111 shape.addVertex(pos0, 0.011000f, 0.000000f, 0, false);
112 shape.addVertex(pos0, 0.011000f, 0.021000f, 0, true);
113 // GlyphShape<48>: offset 12 of 45/45 points
114 // pM[011] P[11/0, on false, end false]
115 // p0[012] P[11/21, on true, end false]
116 // p1[013] P[11/41, on false, end false]
117 // p2[014] P[38/41, on true, end false]
118 // 012: B2: quad-to p0-p1-p2
119 // Shape.QuadTo:
120 shape.addVertex(pos0, 0.011000f, 0.041000f, 0, false);
121 shape.addVertex(pos0, 0.038000f, 0.041000f, 0, true);
122 // GlyphShape<48>: offset 14 of 45/45 points
123 // pM[013] P[11/41, on false, end false]
124 // p0[014] P[38/41, on true, end false]
125 // p1[015] P[72/41, on true, end false]
126 // p2[016] P[72/522, on true, end false]
127 // 014: B1: line-to p0-p1
128 // Shape.LineTo:
129 shape.addVertex(pos0, 0.072000f, 0.041000f, 0, true);
130 // GlyphShape<48>: offset 15 of 45/45 points
131 // pM[014] P[38/41, on true, end false]
132 // p0[015] P[72/41, on true, end false]
133 // p1[016] P[72/522, on true, end false]
134 // p2[017] P[47/522, on true, end false]
135 // 015: B1: line-to p0-p1
136 // Shape.LineTo:
137 shape.addVertex(pos0, 0.072000f, 0.522000f, 0, true);
138 // GlyphShape<48>: offset 16 of 45/45 points
139 // pM[015] P[72/41, on true, end false]
140 // p0[016] P[72/522, on true, end false]
141 // p1[017] P[47/522, on true, end false]
142 // p2[018] P[20/522, on false, end false]
143 // 016: B1: line-to p0-p1
144 // Shape.LineTo:
145 shape.addVertex(pos0, 0.047000f, 0.522000f, 0, true);
146 // GlyphShape<48>: offset 17 of 45/45 points
147 // pM[016] P[72/522, on true, end false]
148 // p0[017] P[47/522, on true, end false]
149 // p1[018] P[20/522, on false, end false]
150 // p2[019] P[20/543, on true, end false]
151 // 017: B2: quad-to p0-p1-p2
152 // Shape.QuadTo:
153 shape.addVertex(pos0, 0.020000f, 0.522000f, 0, false);
154 shape.addVertex(pos0, 0.020000f, 0.543000f, 0, true);
155 // GlyphShape<48>: offset 19 of 45/45 points
156 // pM[018] P[20/522, on false, end false]
157 // p0[019] P[20/543, on true, end false]
158 // p1[020] P[20/563, on false, end false]
159 // p2[021] P[47/563, on true, end false]
160 // 019: B2: quad-to p0-p1-p2
161 // Shape.QuadTo:
162 shape.addVertex(pos0, 0.020000f, 0.563000f, 0, false);
163 shape.addVertex(pos0, 0.047000f, 0.563000f, 0, true);
164 // GlyphShape<48>: offset 21 of 45/45 points
165 // pM[020] P[20/563, on false, end false]
166 // p0[021] P[47/563, on true, end false]
167 // p1[022] P[146/563, on true, end false]
168 // p2[023] P[303/215, on true, end false]
169 // 021: B1: line-to p0-p1
170 // Shape.LineTo:
171 shape.addVertex(pos0, 0.146000f, 0.563000f, 0, true);
172 // GlyphShape<48>: offset 22 of 45/45 points
173 // pM[021] P[47/563, on true, end false]
174 // p0[022] P[146/563, on true, end false]
175 // p1[023] P[303/215, on true, end false]
176 // p2[024] P[457/563, on true, end false]
177 // 022: B1: line-to p0-p1
178 // Shape.LineTo:
179 shape.addVertex(pos0, 0.303000f, 0.215000f, 0, true);
180 // GlyphShape<48>: offset 23 of 45/45 points
181 // pM[022] P[146/563, on true, end false]
182 // p0[023] P[303/215, on true, end false]
183 // p1[024] P[457/563, on true, end false]
184 // p2[025] P[557/563, on true, end false]
185 // 023: B1: line-to p0-p1
186 // Shape.LineTo:
187 shape.addVertex(pos0, 0.457000f, 0.563000f, 0, true);
188 // GlyphShape<48>: offset 24 of 45/45 points
189 // pM[023] P[303/215, on true, end false]
190 // p0[024] P[457/563, on true, end false]
191 // p1[025] P[557/563, on true, end false]
192 // p2[026] P[584/563, on false, end false]
193 // 024: B1: line-to p0-p1
194 // Shape.LineTo:
195 shape.addVertex(pos0, 0.557000f, 0.563000f, 0, true);
196 // GlyphShape<48>: offset 25 of 45/45 points
197 // pM[024] P[457/563, on true, end false]
198 // p0[025] P[557/563, on true, end false]
199 // p1[026] P[584/563, on false, end false]
200 // p2[027] P[584/543, on true, end false]
201 // 025: B2: quad-to p0-p1-p2
202 // Shape.QuadTo:
203 shape.addVertex(pos0, 0.584000f, 0.563000f, 0, false);
204 shape.addVertex(pos0, 0.584000f, 0.543000f, 0, true);
205 // GlyphShape<48>: offset 27 of 45/45 points
206 // pM[026] P[584/563, on false, end false]
207 // p0[027] P[584/543, on true, end false]
208 // p1[028] P[584/522, on false, end false]
209 // p2[029] P[557/522, on true, end false]
210 // 027: B2: quad-to p0-p1-p2
211 // Shape.QuadTo:
212 shape.addVertex(pos0, 0.584000f, 0.522000f, 0, false);
213 shape.addVertex(pos0, 0.557000f, 0.522000f, 0, true);
214 // GlyphShape<48>: offset 29 of 45/45 points
215 // pM[028] P[584/522, on false, end false]
216 // p0[029] P[557/522, on true, end false]
217 // p1[030] P[532/522, on true, end false]
218 // p2[031] P[532/41, on true, end false]
219 // 029: B1: line-to p0-p1
220 // Shape.LineTo:
221 shape.addVertex(pos0, 0.532000f, 0.522000f, 0, true);
222 // GlyphShape<48>: offset 30 of 45/45 points
223 // pM[029] P[557/522, on true, end false]
224 // p0[030] P[532/522, on true, end false]
225 // p1[031] P[532/41, on true, end false]
226 // p2[032] P[566/41, on true, end false]
227 // 030: B1: line-to p0-p1
228 // Shape.LineTo:
229 shape.addVertex(pos0, 0.532000f, 0.041000f, 0, true);
230 // GlyphShape<48>: offset 31 of 45/45 points
231 // pM[030] P[532/522, on true, end false]
232 // p0[031] P[532/41, on true, end false]
233 // p1[032] P[566/41, on true, end false]
234 // p2[033] P[593/41, on false, end false]
235 // 031: B1: line-to p0-p1
236 // Shape.LineTo:
237 shape.addVertex(pos0, 0.566000f, 0.041000f, 0, true);
238 // GlyphShape<48>: offset 32 of 45/45 points
239 // pM[031] P[532/41, on true, end false]
240 // p0[032] P[566/41, on true, end false]
241 // p1[033] P[593/41, on false, end false]
242 // p2[034] P[593/21, on true, end false]
243 // 032: B2: quad-to p0-p1-p2
244 // Shape.QuadTo:
245 shape.addVertex(pos0, 0.593000f, 0.041000f, 0, false);
246 shape.addVertex(pos0, 0.593000f, 0.021000f, 0, true);
247 // GlyphShape<48>: offset 34 of 45/45 points
248 // pM[033] P[593/41, on false, end false]
249 // p0[034] P[593/21, on true, end false]
250 // p1[035] P[593/0, on false, end false]
251 // p2[036] P[566/0, on true, end false]
252 // 034: B2: quad-to p0-p1-p2
253 // Shape.QuadTo:
254 shape.addVertex(pos0, 0.593000f, 0.000000f, 0, false);
255 shape.addVertex(pos0, 0.566000f, 0.000000f, 0, true);
256 // GlyphShape<48>: offset 36 of 45/45 points
257 // pM[035] P[593/0, on false, end false]
258 // p0[036] P[566/0, on true, end false]
259 // p1[037] P[417/0, on true, end false]
260 // p2[038] P[390/0, on false, end false]
261 // 036: B1: line-to p0-p1
262 // Shape.LineTo:
263 shape.addVertex(pos0, 0.417000f, 0.000000f, 0, true);
264 // GlyphShape<48>: offset 37 of 45/45 points
265 // pM[036] P[566/0, on true, end false]
266 // p0[037] P[417/0, on true, end false]
267 // p1[038] P[390/0, on false, end false]
268 // p2[039] P[390/21, on true, end false]
269 // 037: B2: quad-to p0-p1-p2
270 // Shape.QuadTo:
271 shape.addVertex(pos0, 0.390000f, 0.000000f, 0, false);
272 shape.addVertex(pos0, 0.390000f, 0.021000f, 0, true);
273 // GlyphShape<48>: offset 39 of 45/45 points
274 // pM[038] P[390/0, on false, end false]
275 // p0[039] P[390/21, on true, end false]
276 // p1[040] P[390/41, on false, end false]
277 // p2[041] P[417/41, on true, end false]
278 // 039: B2: quad-to p0-p1-p2
279 // Shape.QuadTo:
280 shape.addVertex(pos0, 0.390000f, 0.041000f, 0, false);
281 shape.addVertex(pos0, 0.417000f, 0.041000f, 0, true);
282 // GlyphShape<48>: offset 41 of 45/45 points
283 // pM[040] P[390/41, on false, end false]
284 // p0[041] P[417/41, on true, end false]
285 // p1[042] P[491/41, on true, end false]
286 // p2[043] P[491/522, on true, end false]
287 // 041: B1: line-to p0-p1
288 // Shape.LineTo:
289 shape.addVertex(pos0, 0.491000f, 0.041000f, 0, true);
290 // GlyphShape<48>: offset 42 of 45/45 points
291 // pM[041] P[417/41, on true, end false]
292 // p0[042] P[491/41, on true, end false]
293 // p1[043] P[491/522, on true, end false]
294 // p2[044] P[483/522, on true, end true]
295 // 042: B1: line-to p0-p1
296 // Shape.LineTo:
297 shape.addVertex(pos0, 0.491000f, 0.522000f, 0, true);
298 // GlyphShape<48>: offset 43 of 45/45 points
299 // pM[042] P[491/41, on true, end false]
300 // p0[043] P[491/522, on true, end false]
301 // p1[044] P[483/522, on true, end true]
302 // p2[000] P[326/169, on true, end false]
303 // 043: B1: line-to p0-p1
304 // Shape.LineTo:
305 shape.addVertex(pos0, 0.483000f, 0.522000f, 0, true);
306 // GlyphShape<48>: offset 44 of 45/45 points
307 // pM[043] P[491/522, on true, end false]
308 // p0[044] P[483/522, on true, end true]
309 // p1[000] P[326/169, on true, end false]
310 // p2[001] P[280/169, on true, end false]
311 // 044: B1: line-to p0-p1
312 // Shape.LineTo:
313 shape.addVertex(pos0, 0.326000f, 0.169000f, 0, true);
314 jau::PLAIN_PRINT(true, "Glyph03FreeMonoRegular_M.shape01a.winding_area: %s", jau::math::geom::to_string(shape.windingOfLastOutline()).c_str());
315 shape.closeLastOutline(false);
316
317 // End Shape for Glyph 48
318 }
319
320 shape.setIsQuadraticNurbs();
322
323 }
324};
325
326#endif // GLYPH03FREEMONO_M
GPU based resolution independent test object.
static void addShapeToRegion(gamp::graph::OutlineShape &shape)
A Generic shape objects which is defined by a list of Outlines.
void setSharpness(float s) noexcept
Sets sharpness, defaults to DEFAULT_SHARPNESS.
Winding windingOfLastOutline() const noexcept
Compute the Winding of the getLastOutline() using the VectorUtil#area(ArrayList) function over all of...
void closeLastOutline(bool closeTail)
Closes the last outline in the shape.
void setIsQuadraticNurbs() noexcept
Claim this outline's vertices are all VertexState::quadratic_nurbs, hence no cubic transformations wi...
static constexpr float DEFAULT_SHARPNESS
Initial sharpness() value, which can be modified via setSharpness(float).
void addEmptyOutline()
Add a new empty Outline to the end of this shape's outline list.
void addVertex(const Vertex &v)
Adds a vertex to the last open outline to the shape's tail.
std::string to_string(const math_error_t v) noexcept
Returns std::string representation of math_error_t.
void PLAIN_PRINT(const bool printPrefix, const char *format,...) noexcept
Use for unconditional plain messages, prefix '[elapsed_time] ' if printPrefix == true.
Definition debug.cpp:258