| /* |
| Two dimension arrays |
| */ |
| |
| %module arrays_global_twodim |
| |
| %inline %{ |
| #define ARRAY_LEN_X 2 |
| #define ARRAY_LEN_Y 4 |
| |
| typedef enum {One, Two, Three, Four, Five} finger; |
| |
| typedef struct { |
| double double_field; |
| } SimpleStruct; |
| |
| char array_c [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| signed char array_sc[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| unsigned char array_uc[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| short array_s [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| unsigned short array_us[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| int array_i [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| unsigned int array_ui[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| long array_l [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| unsigned long array_ul[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| long long array_ll[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| float array_f [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| double array_d [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| SimpleStruct array_struct[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| SimpleStruct* array_structpointers[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| int* array_ipointers [ARRAY_LEN_X][ARRAY_LEN_Y]; |
| finger array_enum[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| finger* array_enumpointers[ARRAY_LEN_X][ARRAY_LEN_Y]; |
| const int array_const_i[ARRAY_LEN_X][ARRAY_LEN_Y] = { {10, 11, 12, 13}, {14, 15, 16, 17} }; |
| |
| void fn_taking_arrays(SimpleStruct array_struct[ARRAY_LEN_X][ARRAY_LEN_Y]) {} |
| |
| int get_2d_array(int (*array)[ARRAY_LEN_Y], int x, int y){ |
| return array[x][y]; |
| } |
| %} |
| |
| #ifdef __cplusplus |
| %inline |
| { |
| |
| struct Material |
| { |
| }; |
| |
| enum { |
| Size = 32 |
| }; |
| |
| const Material * chitMat[Size][Size]; |
| Material hitMat_val[Size][Size]; |
| Material *hitMat[Size][Size]; |
| } |
| |
| #endif |
| |