gigawidgets 0.3.55
A wxWidgets-style UI library for the Arduino Giga Display Shield.
 
Loading...
Searching...
No Matches
units.hpp
Go to the documentation of this file.
1
2#pragma once
3
4#include <cinttypes>
5
6#define GIGA_DISPLAY_W_PX 480
7#define GIGA_DISPLAY_H_PX 800
8#define GIGA_DISPLAY_PPI 235.000580145
9
10#ifndef PI
11#define PI 3.141592653589
12#endif
13
24constexpr uint16_t operator""_px(long double pixels) {
25 return pixels;
26}
27
38constexpr uint16_t operator""_px(unsigned long long pixels) {
39 return pixels;
40}
41
51constexpr uint16_t operator""_mm(long double millimeters) {
52 return millimeters * GIGA_DISPLAY_PPI / 254;
53}
54
64constexpr uint16_t operator""_mm(unsigned long long millimeters) {
65 return millimeters * GIGA_DISPLAY_PPI / 254;
66}
67
77constexpr uint16_t operator""_cm(long double centimeters) {
78 return centimeters * GIGA_DISPLAY_PPI / 2.54;
79}
80
90constexpr uint16_t operator""_cm(unsigned long long centimeters) {
91 return centimeters * GIGA_DISPLAY_PPI / 2.54;
92}
93
103constexpr uint16_t operator""_in(long double inches) {
104 return inches * GIGA_DISPLAY_PPI;
105}
106
116constexpr uint16_t operator""_in(unsigned long long inches) {
117 return inches * GIGA_DISPLAY_PPI;
118}
119
129uint16_t operator""_vw(long double view_width_percent);
130
140uint16_t operator""_vw(unsigned long long view_width_percent);
141
151uint16_t operator""_vh(long double view_height_percent);
152
162uint16_t operator""_vh(unsigned long long view_height_percent);
163
173constexpr uint16_t operator""_pt(long double points) {
174 // 1 point = 1/72 inch
175 return points * GIGA_DISPLAY_PPI / 72;
176}
177
187constexpr uint16_t operator""_pt(unsigned long long points) {
188 // 1 point = 1/72 inch
189 return points * GIGA_DISPLAY_PPI / 72;
190}
191
201constexpr long double operator""_deg(long double degrees) {
202 return PI * degrees / 180.0;
203}
204
214constexpr long double operator""_deg(unsigned long long degrees) {
215 return PI * degrees / 180.0;
216}
217
228constexpr long double operator""_rad(long double radians) {
229 return radians;
230}
231
242constexpr long double operator""_rad(unsigned long long radians) {
243 return radians;
244}
245
256constexpr unsigned long operator""_ms(unsigned long long time) {
257 return time;
258}
259
269constexpr unsigned long operator""_sec(unsigned long long time) {
270 return time * 1000;
271}
272
282constexpr unsigned long operator""_sec(long double time) {
283 return time * 1000;
284}
285
295constexpr unsigned long operator""_min(unsigned long long time) {
296 return time * 1000 * 60;
297}
298
308constexpr unsigned long operator""_min(long double time) {
309 return time * 1000 * 60;
310}
311
321constexpr unsigned long operator""_hr(unsigned long long time) {
322 return time * 1000 * 60 * 60;
323}
324
334constexpr unsigned long operator""_hr(long double time) {
335 return time * 1000 * 60 * 60;
336}