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
/local/homes/rhaschke/nst7/man/../o.linx86//../foldersrc/nst_pixel.c