Go to the documentation of this file.
57 #define HITMAP_VERSION 2.0
64 #define HIT2_COUNTPARAM( ... ) HIT2_COUNTPARAM_N( __VA_ARGS__, 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 )
65 #define HIT2_COUNTPARAM_N( n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, num, ... ) num
70 #define hit(var, ...) HIT2_HIT_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
71 #define HIT2_HIT_VARIADIC(var, num, ...) hit_tileElemAtNoStride( var, num, __VA_ARGS__ )
73 #define hitStrided(var, ...) HIT2_HITSTRIDED_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
74 #define HIT2_HITSTRIDED_VARIADIC(var, num, ...) hit_tileElemAt( var, num, __VA_ARGS__ )
79 #define hitNewShape( ... ) HIT2_SHAPE_VARIADIC( HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
80 #define HIT2_SHAPE_VARIADIC( num, ... ) HIT2_SHAPE_VARIADIC_2( num, __VA_ARGS__ )
81 #define HIT2_SHAPE_VARIADIC_2( num, ... ) hit_shape( num, HIT2_HITSIGS_##num( __VA_ARGS__ ) )
82 #define HIT2_HITSIGS_1( tuple ) hitNewSig tuple
83 #define HIT2_HITSIGS_2( tuple, ... ) hitNewSig tuple, HIT2_HITSIGS_1( __VA_ARGS__ )
84 #define HIT2_HITSIGS_3( tuple, ... ) hitNewSig tuple, HIT2_HITSIGS_2( __VA_ARGS__ )
85 #define HIT2_HITSIGS_4( tuple, ... ) hitNewSig tuple, HIT2_HITSIGS_3( __VA_ARGS__ )
90 #define hitNewSig( ... ) HIT2_HITSIG_VARIADIC( HIT2_COUNTPARAM(__VA_ARGS__), __VA_ARGS__ )
91 #define HIT2_HITSIG_VARIADIC( num, ... ) HIT2_HITSIG_VARIADIC_2( num, __VA_ARGS__ )
92 #define HIT2_HITSIG_VARIADIC_2( num, ... ) hitSig_##num( __VA_ARGS__ )
93 #define hitSig_1( a ) hit_sig( a, a, 1 )
94 #define hitSig_2( a, b ) hit_sig( a, b, 1 )
95 #define hitSig_3( a, b, c ) hit_sig( a, b, c )
100 #define hitNewType( type ) hit_tileNewType( type ); \
101 static inline HitTile_##type hitNewTile_##type( HitShape shp ) { \
102 HitTile_##type new = HIT_TILE_NULL_STATIC; \
103 hit_tileDomainShapeAlloc( &new, type, shp ); \
110 #define hitNewTile( type, shape ) hitNewTile_##type( shape )
117 #endif // HITMAP v2.0