mouse_getposition_6d, mouse_setposition_6d, mouse_setrange_6d − provide an interface to 3d mice
void mouse_getposition_6d(int *x, int *y, int *z, int *rx , int *ry, int *rz);
void mouse_setposition_6d(int x, int y, int z, int rx , int ry, int rz, int dim_mask);
void mouse_setrange_6d(int x1, int x2, int y1, int y2, int z1 , int z2, int rx1, int rx2, int ry1, int ry2 , int rz1, int rz2, int dim_mask);
These routines provide the same function as mouse_getx(3), mouse_gety(3), mouse_setxrange(3), mouse_setyrange(3), mouse_setposition(3), and mouse_getx(3), except that they work in all six dimensions, x, y, z, and rotations about those axes.
For mouse_getposition_6d(), NULL pointers may be passed for any coordinate you don’t care to know about. Those dimensions will be ignored.
mouse_setposition_6d() and mouse_setrange_6d() take an additional argument called dim_mask, which should be an logical or of the following: MOUSE_XDIM, MOUSE_YDIM, MOUSE_ZDIM, MOUSE_RXDIM, MOUSE_RYDIM, or MOUSE_RZDIM. MOUSE_2DIM, MOUSE_3DIM, MOUSE_6DIM can be used as shorthand for the XY, XYZ, or XYZRxRyRz dimensions. The position or ranges will only be set if that dimension is included in dim_mask.
The 6d mouse routines can be used safely with any mouse type, including standard 2D mice.
When used with mice that support fewer than six axes, the other coordinates will always return zero (or whatever value you set them to).
svgalib(7), vgagl(7), libvga.config(5), eventtest(6), mouse_close(3), mouse_init(3), mouse_setposition(3), mouse_getx(3), mouse_setscale(3), mouse_setwrap(3), mouse_setxrange(3), mouse_update(3), mouse_waitforupdate(3), vga_setmousesupport(3), mouse_seteventhandler(3), vga_waitevent(3)
This manual page was edited by Michael Weller <eowmob AT exp-math DOT uni-essen DOT de>. The exact source of the referenced function as well as of the original documentation is unknown.
It is very likely that both are at least to some extent are due to Harm Hanemaayer <H DOT Hanemaayer AT inter DOT nl DOT net>.
Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.