Hitmap 1.3
 All Data Structures Namespaces Files Functions Variables Typedefs Friends Macros Groups Pages
Macros
hitmap2.h File Reference
#include "hitmap.h"
Include dependency graph for hitmap2.h:

Go to the source code of this file.

Macros

#define HITMAP_VERSION   2.0
 
#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 )
 
#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
 
#define hit(var,...)   HIT2_HIT_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
 
#define HIT2_HIT_VARIADIC(var, num,...)   hit_tileElemAtNoStride( var, num, __VA_ARGS__ )
 
#define hitStrided(var,...)   HIT2_HITSTRIDED_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
 
#define HIT2_HITSTRIDED_VARIADIC(var, num,...)   hit_tileElemAt( var, num, __VA_ARGS__ )
 
#define hitNewShape(...)   HIT2_SHAPE_VARIADIC( HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )
 
#define HIT2_SHAPE_VARIADIC(num,...)   HIT2_SHAPE_VARIADIC_2( num, __VA_ARGS__ )
 
#define HIT2_SHAPE_VARIADIC_2(num,...)   hit_shape( num, HIT2_HITSIGS_##num( __VA_ARGS__ ) )
 
#define HIT2_HITSIGS_1(tuple)   hitNewSig tuple
 
#define HIT2_HITSIGS_2(tuple,...)   hitNewSig tuple, HIT2_HITSIGS_1( __VA_ARGS__ )
 
#define HIT2_HITSIGS_3(tuple,...)   hitNewSig tuple, HIT2_HITSIGS_2( __VA_ARGS__ )
 
#define HIT2_HITSIGS_4(tuple,...)   hitNewSig tuple, HIT2_HITSIGS_3( __VA_ARGS__ )
 
#define hitNewSig(...)   HIT2_HITSIG_VARIADIC( HIT2_COUNTPARAM(__VA_ARGS__), __VA_ARGS__ )
 
#define HIT2_HITSIG_VARIADIC(num,...)   HIT2_HITSIG_VARIADIC_2( num, __VA_ARGS__ )
 
#define HIT2_HITSIG_VARIADIC_2(num,...)   hitSig_##num( __VA_ARGS__ )
 
#define hitSig_1(a)   hit_sig( a, a, 1 )
 
#define hitSig_2(a, b)   hit_sig( a, b, 1 )
 
#define hitSig_3(a, b, c)   hit_sig( a, b, c )
 
#define hitNewType(type)
 
#define hitNewTile(type, shape)   hitNewTile_##type( shape )
 

Detailed Description

HitMap library main include file.

This header file includes the header files needed to use all the functionalities of HitMap. It is the only header file to be used in all Hitmap applications.

Version
2.0
Author
Arturo Gonzalez-Escribano
Date
Oct 2017

Definition in file hitmap2.h.

Macro Definition Documentation

#define hit (   var,
  ... 
)    HIT2_HIT_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )

New Tile access macros

Definition at line 70 of file hitmap2.h.

#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 )

Macros for the new v2.0 interface

Definition at line 64 of file hitmap2.h.

#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

Definition at line 65 of file hitmap2.h.

#define HIT2_HIT_VARIADIC (   var,
  num,
  ... 
)    hit_tileElemAtNoStride( var, num, __VA_ARGS__ )

Definition at line 71 of file hitmap2.h.

#define HIT2_HITSIG_VARIADIC (   num,
  ... 
)    HIT2_HITSIG_VARIADIC_2( num, __VA_ARGS__ )

Definition at line 91 of file hitmap2.h.

#define HIT2_HITSIG_VARIADIC_2 (   num,
  ... 
)    hitSig_##num( __VA_ARGS__ )

Definition at line 92 of file hitmap2.h.

#define HIT2_HITSIGS_1 (   tuple)    hitNewSig tuple

Definition at line 82 of file hitmap2.h.

#define HIT2_HITSIGS_2 (   tuple,
  ... 
)    hitNewSig tuple, HIT2_HITSIGS_1( __VA_ARGS__ )

Definition at line 83 of file hitmap2.h.

#define HIT2_HITSIGS_3 (   tuple,
  ... 
)    hitNewSig tuple, HIT2_HITSIGS_2( __VA_ARGS__ )

Definition at line 84 of file hitmap2.h.

#define HIT2_HITSIGS_4 (   tuple,
  ... 
)    hitNewSig tuple, HIT2_HITSIGS_3( __VA_ARGS__ )

Definition at line 85 of file hitmap2.h.

#define HIT2_HITSTRIDED_VARIADIC (   var,
  num,
  ... 
)    hit_tileElemAt( var, num, __VA_ARGS__ )

Definition at line 74 of file hitmap2.h.

#define HIT2_SHAPE_VARIADIC (   num,
  ... 
)    HIT2_SHAPE_VARIADIC_2( num, __VA_ARGS__ )

Definition at line 80 of file hitmap2.h.

#define HIT2_SHAPE_VARIADIC_2 (   num,
  ... 
)    hit_shape( num, HIT2_HITSIGS_##num( __VA_ARGS__ ) )

Definition at line 81 of file hitmap2.h.

#define HITMAP_VERSION   2.0

Version of this Hitmap library release

Definition at line 57 of file hitmap2.h.

#define hitNewShape (   ...)    HIT2_SHAPE_VARIADIC( HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )

New Shape constructor macro

Definition at line 79 of file hitmap2.h.

#define hitNewSig (   ...)    HIT2_HITSIG_VARIADIC( HIT2_COUNTPARAM(__VA_ARGS__), __VA_ARGS__ )

New Signature constructor macro

Definition at line 90 of file hitmap2.h.

#define hitNewTile (   type,
  shape 
)    hitNewTile_##type( shape )

Generic local tile constructor

Definition at line 110 of file hitmap2.h.

#define hitNewType (   type)
Value:
hit_tileNewType( type ); \
static inline HitTile_##type hitNewTile_##type( HitShape shp ) { \
HitTile_##type new = HIT_TILE_NULL_STATIC; \
hit_tileDomainShapeAlloc( &new, type, shp ); \
return new; \
}
#define hit_tileNewType(baseType)
Definition: hit_tile.h:163
#define hit_tileDomainShapeAlloc(newVarP, baseType, shape)
Definition: hit_tile.h:354

New Tile Type definition including a specialized static inline constructor

Definition at line 100 of file hitmap2.h.

#define hitSig_1 (   a)    hit_sig( a, a, 1 )

Definition at line 93 of file hitmap2.h.

#define hitSig_2 (   a,
 
)    hit_sig( a, b, 1 )

Definition at line 94 of file hitmap2.h.

#define hitSig_3 (   a,
  b,
 
)    hit_sig( a, b, c )

Definition at line 95 of file hitmap2.h.

#define hitStrided (   var,
  ... 
)    HIT2_HITSTRIDED_VARIADIC( var, HIT2_COUNTPARAM( __VA_ARGS__ ), __VA_ARGS__ )

Definition at line 73 of file hitmap2.h.