acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
_.h
1#pragma once
2
3
4namespace geometry2d
5{
6
7
8 class region;
9 class item;
10
11
12 class matrix;
13
14
15} // namespace geometry2d
16
17
18DECLARE_C_FLAG(e_align, enum_align);
19
20
21#include "_struct.h"
22
23
24template < prototype_number NUMBER >
25class point_type;
26
27template < prototype_number NUMBER >
28class size_type;
29
30template < prototype_number NUMBER >
31class line_type;
32
33template < prototype_number NUMBER >
34class rectangle_type;
35
36template < prototype_number NUMBER >
37class ellipse_type;
38
39template < prototype_number NUMBER >
40class arc_type;
41
42template < prototype_number NUMBER >
44
45template < prototype_number NUMBER >
46class polygon_base;
47
48template < prototype_number NUMBER >
50
51template < prototype_number NUMBER >
53
54template < prototype_number NUMBER >
55class size_array_base;
56
57template < prototype_number NUMBER >
59
60template < prototype_number NUMBER >
61class lines_base;
62
63
64using i32_point = point_type < ::i32 >;
65using i64_point = point_type < ::i64 >;
66using f32_point = point_type < ::f32 >;
67using f64_point = point_type < ::f64 >;
68
69
70using i32_size = size_type < ::i32 >;
71using i64_size = size_type < ::i64 >;
72using f32_size = size_type < ::f32 >;
73using f64_size = size_type < ::f64 >;
74
75
76using i32_rectangle = rectangle_type < ::i32 >;
77using i64_rectangle = rectangle_type < ::i64 >;
78using f32_rectangle = rectangle_type < ::f32 >;
79using f64_rectangle = rectangle_type < ::f64 >;
80
81
82using i32_ellipse = ellipse_type < ::i32 >;
83using i64_ellipse = ellipse_type < ::i64 >;
84using f32_ellipse = ellipse_type < ::f32 >;
85using f64_ellipse = ellipse_type < ::f64 >;
86
87
88using i32_line = line_type < ::i32 >;
89using i64_line = line_type < ::i64 >;
90using f32_line = line_type < ::f32 >;
91using f64_line = line_type < ::f64 >;
92
93
94using i32_arc = arc_type < ::i32 >;
95using i64_arc = arc_type < ::i64 >;
96using f32_arc = arc_type < ::f32 >;
97using f64_arc = arc_type < ::f64 >;
98
99
100using i32_point_array_base = point_array_base < ::i32 >;
101using i64_point_array_base = point_array_base < ::i64 >;
102using f32_point_array_base = point_array_base < ::f32 >;
103using f64_point_array_base = point_array_base < ::f64 >;
104
105
106using i32_point_array = ::array_particle < i32_point_array_base >;
107using i64_point_array = ::array_particle < i64_point_array_base >;
108using f32_point_array = ::array_particle < f32_point_array_base >;
109using f64_point_array = ::array_particle < f64_point_array_base >;
110
111
112using i32_polygon_base = polygon_base < ::i32 >;
113using i64_polygon_base = polygon_base < ::i64 >;
114using f32_polygon_base = polygon_base < ::f32 >;
115using f64_polygon_base = polygon_base < ::f64 >;
116
117
118using i32_polygon = ::array_particle < i32_polygon_base >;
119using i64_polygon = ::array_particle < i64_polygon_base >;
120using f32_polygon = ::array_particle < f32_polygon_base >;
121using f64_polygon = ::array_particle < f64_polygon_base >;
122
123
124using i32_poly_polygon_base = poly_polygon_base < ::i32 >;
125using i64_poly_polygon_base = poly_polygon_base < ::i64 >;
126using f32_poly_polygon_base = poly_polygon_base < ::f32 >;
127using f64_poly_polygon_base = poly_polygon_base < ::f64 >;
128
129
130using i32_poly_polygon = ::array_particle < i32_poly_polygon_base >;
131using i64_poly_polygon = ::array_particle < i64_poly_polygon_base >;
132using f32_poly_polygon = ::array_particle < f32_poly_polygon_base >;
133using f64_poly_polygon = ::array_particle < f64_poly_polygon_base >;
134
135
136using i32_point_array_base = point_array_base < ::i32 >;
137using i64_point_array_base = point_array_base < ::i64 >;
138using f32_point_array_base = point_array_base < ::f32 >;
139using f64_point_array_base = point_array_base < ::f64 >;
140
141
142using i32_point_array = ::array_particle < i32_point_array_base >;
143using i64_point_array = ::array_particle < i64_point_array_base >;
144using f32_point_array = ::array_particle < f32_point_array_base >;
145using f64_point_array = ::array_particle < f64_point_array_base >;
146
147
148using i32_size_array_base = size_array_base < ::i32 >;
149using i64_size_array_base = size_array_base < ::i64 >;
150using f32_size_array_base = size_array_base < ::f32 >;
151using f64_size_array_base = size_array_base < ::f64 >;
152
153
154using i32_size_array = ::array_particle < i32_size_array_base >;
155using i64_size_array = ::array_particle < i64_size_array_base >;
156using f32_size_array = ::array_particle < f32_size_array_base >;
157using f64_size_array = ::array_particle < f64_size_array_base >;
158
159
160using i32_rectangle_array_base = rectangle_array_base < ::i32 >;
161using i64_rectangle_array_base = rectangle_array_base < ::i64 >;
162using f32_rectangle_array_base = rectangle_array_base < ::f32 >;
163using f64_rectangle_array_base = rectangle_array_base < ::f64 >;
164
165
166using i32_rectangle_array = ::array_particle < i32_rectangle_array_base >;
167using i64_rectangle_array = ::array_particle < i64_rectangle_array_base >;
168using f32_rectangle_array = ::array_particle < f32_rectangle_array_base >;
169using f64_rectangle_array = ::array_particle < f64_rectangle_array_base >;
170
171using i32_lines_base = lines_base < ::i32 >;
172using i64_lines_base = lines_base < ::i64 >;
173using f32_lines_base = lines_base < ::f32 >;
174using f64_lines_base = lines_base < ::f64 >;
175
176using i32_lines = ::array_particle < i32_lines_base >;
177using i64_lines = ::array_particle < i64_lines_base >;
178using f32_lines = ::array_particle < f32_lines_base >;
179using f64_lines = ::array_particle < f64_lines_base >;
180
181template < struct_rectangle RECTANGLE1, prototype_rectangle RECTANGLE2 >
182inline void copy(RECTANGLE1 * prectangle1, const RECTANGLE2 * prectangle2)
183{
184
185 prectangle1->left = (decltype(prectangle1->left))prectangle2->left;
186 prectangle1->top = (decltype(prectangle1->top))prectangle2->top;
187 prectangle1->right = (decltype(prectangle1->right))prectangle2->right;
188 prectangle1->bottom = (decltype(prectangle1->bottom))prectangle2->bottom;
189
190}
191
192
193
Definition arc.h:14
Definition ellipse.h:11
Definition item copy.h:48
Definition matrix.h:14
Definition region.h:16
Definition line.h:6
Definition lines.h:11
Definition point_array.h:25
Definition point.h:12
Definition polygon.h:594
Definition polygon.h:13
Definition rectangle_array.h:10
Definition rectangle.h:49
Definition size_array.h:10
Definition size.h:11