-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcoords.all.h
67 lines (51 loc) · 1.98 KB
/
coords.all.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// File created: 2011-08-06 16:12:12
#ifndef MUSHSPACE_COORDS_H
#define MUSHSPACE_COORDS_H
#include <stdbool.h>
#include "cell.both.h"
#include "compilers.any.h"
#include "typenames.any.h"
#define mushcoords MUSHSPACE_NAME(mushcoords)
typedef union mushcoords {
MUSH_PACKED_STRUCT
{
mushcell x;
#if MUSHSPACE_DIM >= 2
mushcell y;
#endif
#if MUSHSPACE_DIM >= 3
mushcell z;
#endif
};
MUSH_PACKED_STRUCT_END
mushcell v[MUSHSPACE_DIM];
} mushcoords;
#define MUSHCOORDS_INIT MUSHSPACE_CAT(MUSHCOORDS_INIT,MUSHSPACE_DIM)
#define MUSHCOORDS_INIT1(a,b,c) {{.x = a}}
#define MUSHCOORDS_INIT2(a,b,c) {{.x = a, .y = b}}
#define MUSHCOORDS_INIT3(a,b,c) {{.x = a, .y = b, .z = c}}
#define MUSHCOORDS(a,b,c) ((mushcoords)MUSHCOORDS_INIT(a,b,c))
#define mushcoords_add MUSHSPACE_CAT(mushcoords,_add)
#define mushcoords_sub MUSHSPACE_CAT(mushcoords,_sub)
#define mushcoords_add_into MUSHSPACE_CAT(mushcoords,_add_into)
#define mushcoords_sub_into MUSHSPACE_CAT(mushcoords,_sub_into)
#define mushcoords_equal MUSHSPACE_CAT(mushcoords,_equal)
#define mushcoords_muls MUSHSPACE_CAT(mushcoords,_muls)
#define mushcoords_adds_clamped MUSHSPACE_CAT(mushcoords,_adds_clamped)
#define mushcoords_subs_clamped MUSHSPACE_CAT(mushcoords,_subs_clamped)
#define mushcoords_max_into MUSHSPACE_CAT(mushcoords,_max_into)
#define mushcoords_min_into MUSHSPACE_CAT(mushcoords,_min_into)
mushcoords mushcoords_add(mushcoords, mushcoords);
mushcoords mushcoords_sub(mushcoords, mushcoords);
void mushcoords_add_into(mushcoords*, mushcoords);
void mushcoords_sub_into(mushcoords*, mushcoords);
void mushcoords_max_into(mushcoords*, mushcoords);
void mushcoords_min_into(mushcoords*, mushcoords);
bool mushcoords_equal(mushcoords, mushcoords);
#if !MUSHSPACE_93
// "s" for "scalar".
mushcoords mushcoords_muls(mushcoords, mushcell);
mushcoords mushcoords_adds_clamped(mushcoords, mushcell);
mushcoords mushcoords_subs_clamped(mushcoords, mushcell);
#endif
#endif