-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgeom-interface.h
41 lines (36 loc) · 890 Bytes
/
geom-interface.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
#ifndef __IS_GEOM_INTERFACE__
#define __IS_GEOM_INTERFACE__
enum GeomKind {
args_kind,
num_kind,
string_kind,
v2d_kind,
v3d_kind,
v3i_kind,
mat_kind,
array_v2d_kind,
array_v3d_kind,
array_v3i_kind,
nested_v2d_kind,
nested_v3d_kind,
poly_kind,
mesh_kind,
expr_kind,
octree_kind,
meshy_kind
};
class Geom;
typedef Geom* (*zero_geom_op_t)(void);
typedef Geom* (*unary_geom_op_t)(Geom*);
typedef Geom* (*binary_geom_op_t)(Geom*, Geom*);
typedef Geom* (*triple_geom_op_t)(Geom*, Geom*, Geom*);
typedef Geom* (*quad_geom_op_t)(Geom*, Geom*, Geom*, Geom*);
typedef Geom* (*quint_geom_op_t)(Geom*, Geom*, Geom*, Geom*, Geom*);
typedef Geom* (*hex_geom_op_t)(Geom*, Geom*, Geom*, Geom*, Geom*, Geom*);
typedef Geom* (*seven_geom_op_t)(Geom*, Geom*, Geom*, Geom*, Geom*, Geom*, Geom*);
class Geom {
public:
GeomKind k;
Geom(GeomKind k) : k(k) { }
};
#endif