NAME

arrange_hexagonal -- arrange data for hexagonal pixel display

PROTOTYPE

unitptr arrange_hexagonal( int iDx, int iDy, int iDz, char *pcOpt, unitptr uHost)

ARGUMENTS

int iDx
width of grid
int iDy
height of grid
int iDz
nr of planes
char *pcOpt
options
unitptr uHost
host unit

RETURN VALUE:

A pointer to the created unit or NULL in the case of an error.

INTERFACE OF CREATED UNIT:

in_0[iDx*iDy]:
(packed input field 0) data for plane 0
...
...
in_k[iDx*iDy]:
(packed input field 0) data for plane k=iDz-1
out_0[4*iDx*iDy]:
(packed output field 0) data for plane 0
...
...
out_k[4*iDx*iDy]:
(packed output field 0) data for plane k=iDz-1

EXECUTION OF CREATED UNIT:

This unit transforms iDz pixel rectangles of size iDx*iDy such that the output pixel rectangles represent a hexagonal arrangement. This requires that each other row is shifted by half a pixel spacing. To make this possible, each pixel must be zoomed by a factor of two. The resulting pixel rectangle has width 2*iDx+1 and height 2*iDy. Schematically:

      03 13 23 33 43 03 13 23 33 43
      02 12 22 32 42 ==> 02 12 22 32 42
      01 11 21 31 41 01 11 21 31 41
      00 10 20 30 40 00 10 20 30 40


STATUS:

Preliminary.

SEE ALSO:

FILE

/amnt/loge/users/nistaff02/nistaff/rhaschke/nst7/man/../o.linux//../foldersrc/nst_pixel.c