26 #define FRINGE_FORE 0x000000 27 #define FRINGE_WIDTH 2 34 float Neast[] = { 0.8, 0.0, 0.6 };
35 float Nwest[] = { -0.8, 0.0, 0.6 };
36 float Ntop[] = { 0.0, 0.0, 1.0 };
54 float bot, xres, yres;
77 if (where[0] || where[1]) {
91 if (where[2] || where[3]) {
105 if (where[0] || where[2]) {
118 if (where[1] || where[3]) {
148 int row_shift, max_row_shift;
167 ((row + side) * (surf->
y_mod * surf->
yres));
175 while (!
GET_MAPATT(buff, offset, pt[
Z]) && row_shift < max_row_shift) {
178 offset = ((row - row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
180 offset = ((row + row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
185 for (col = 0; col < xcnt - 1; col++) {
190 ((row + side) * (surf->
y_mod * surf->
yres));
197 while (!
GET_MAPATT(buff, offset, pt[Z]) && row_shift < max_row_shift) {
200 offset = ((row - row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
202 offset = ((row + row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
232 int row_shift, max_row_shift;
252 ((row + side) * (surf->
y_mod * surf->
yres));
259 while (!
GET_MAPATT(buff, offset, pt[
Z]) && row_shift < max_row_shift) {
262 offset = ((row - row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
264 offset = ((row + row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
269 for (col = 0; col < xcnt - 1; col++) {
274 ((row + side) * (surf->
y_mod * surf->
yres));
277 while (!
GET_MAPATT(buff, offset, pt[Z]) && row_shift < max_row_shift) {
280 offset = ((row - row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
282 offset = ((row + row_shift) * surf->
y_mod * surf->
cols) + (col * surf->
x_mod);
292 ((row + side) * (surf->
y_mod * surf->
yres));
300 ((row + side) * (surf->
y_mod * surf->
yres));
329 int col_shift, max_col_shift;
354 while (!
GET_MAPATT(buff, offset, pt[
Z]) && col_shift < max_col_shift) {
357 offset = (row * surf->
y_mod * surf->
cols) + ((col - col_shift) * surf->
x_mod);
359 offset = (row * surf->
y_mod * surf->
cols) + ((col + col_shift) * surf->
x_mod);
364 for (row = 0; row < ycnt - 1; row++) {
375 while (!
GET_MAPATT(buff, offset, pt[Z]) && col_shift < max_col_shift) {
378 offset = (row * surf->
y_mod * surf->
cols) + ((col - col_shift) * surf->
x_mod);
380 offset = (row * surf->
y_mod * surf->
cols) + ((col + col_shift) * surf->
x_mod);
410 int col_shift, max_col_shift;
435 while (!
GET_MAPATT(buff, offset, pt[
Z]) && col_shift < max_col_shift) {
438 offset = (row * surf->
y_mod * surf->
cols) + ((col - col_shift) * surf->
x_mod);
440 offset = (row * surf->
y_mod * surf->
cols) + ((col + col_shift) * surf->
x_mod);
445 for (row = 0; row < ycnt - 1; row++) {
453 while (!
GET_MAPATT(buff, offset, pt[Z]) && col_shift < max_col_shift) {
456 offset = (row * surf->
y_mod * surf->
cols) + ((col - col_shift) * surf->
x_mod);
458 offset = (row * surf->
y_mod * surf->
cols) + ((col + col_shift) * surf->
x_mod);
526 for (col = 0; col < xcnt - 1; col++) {
530 offset = col * surf->
x_mod;
void gsd_flush(void)
Mostly for flushing drawing commands across a network.
void gsd_popmatrix(void)
Pop the current matrix stack.
void gsd_fringe_vert_poly(float bot, geosurf *surf, int col, int side)
Draw fringe outline in y direction.
void gsd_colormode(int)
Set color mode.
void gsd_color_func(unsigned int)
Set current color.
void gsd_endline(void)
End line.
void gsd_bgnqstrip(void)
ADD.
void gsd_fringe_horiz_poly(float bot, geosurf *surf, int row, int side)
Draw fringe polygon in x direction.
void gsd_translate(float, float, float)
Multiply the current matrix by a translation matrix.
void gsd_fringe_horiz_line(float bot, geosurf *surf, int row, int side)
Draw fringe outline in x direction.
void GS_done_draw(void)
Draw done, swap buffers.
void gsd_zwritemask(unsigned long)
Write out z-mask.
typbuff * gs_get_att_typbuff(geosurf *, int, int)
Get attribute data buffer.
void gsd_linewidth(short)
Set width of rasterized lines.
void gsd_pushmatrix(void)
Push the current matrix stack.
void gsd_display_fringe(geosurf *surf, unsigned long clr, float elev, int where[4])
Display fridge.
void gsd_fringe_vert_line(float bot, geosurf *surf, int col, int side)
Draw fringe outline in y direction.
void GS_set_draw(int)
Sets which buffer to draw to.
void gsd_do_scale(int)
Set current scale.
void gsd_bgnline(void)
Begin line.
void gsd_fringe_horiz_line2(float bot, geosurf *surf, int row, int side)
ADD.
void gsd_endqstrip(void)
ADD.
#define GET_MAPATT(buff, offset, att)
void gsd_vert_func(float *)
ADD.