acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
_payload.h
1
// Created by camilo on 2025-12-07 21:57 <3ThomasBorregaardSørensen!!
2
#pragma once
3
4
5
template
< prototype_number NUMBER >
6
inline
void
copy_color(sequence_type < NUMBER, 4 > & sequence4, const ::payload &
payload
)
7
{
8
9
if
(
payload
.array_get_count() == 3)
10
{
11
12
payload
[0].as(sequence4.r);
13
payload
[1].as(sequence4.g);
14
payload
[2].as(sequence4.b);
15
16
}
17
else
if
(
payload
.array_get_count() >= 4)
18
{
19
20
payload
[0].as(sequence4.r);
21
payload
[1].as(sequence4.g);
22
payload
[2].as(sequence4.b);
23
payload
[3].as(sequence4.a);
24
25
}
26
else
27
{
28
29
throw
"too few elements for at least a r,g,b color"
;
30
31
}
32
33
34
}
35
36
37
template
<prototype_number NUMBER, ::i32 t_iSize>
38
inline
auto
defer_copy(
sequence_type<NUMBER, t_iSize>
&sequence, const ::payload &
payload
)
39
{
40
41
auto
iCopyCount = minimum(
payload
.array_get_count(), t_iSize);
42
43
for
(
decltype
(iCopyCount) i = 0; i < iCopyCount; i++)
44
{
45
46
NUMBER n;
47
48
payload
[i].as(n);
49
50
sequence.set_coordinate(i, n);
51
52
}
53
54
return
iCopyCount;
55
56
}
57
58
59
template
<prototype_number NUMBER, ::i32 t_iSize>
60
inline
void
copy(
sequence_type<NUMBER, t_iSize>
& sequence, const ::payload &
payload
)
61
{
62
63
auto
iCopyCount = defer_copy(sequence,
payload
);
64
65
if
(iCopyCount < t_iSize)
66
{
67
68
throw
"too few items to create sequence"
;
69
70
}
71
72
}
payload
Definition
payload.h:54
sequence_type
Definition
sequence.h:236
prototype
geometry
_payload.h
Generated by
1.17.0