123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #include <unistd.h>
- #include <string.h>
- #include <grass/gis.h>
- #include <grass/raster.h>
- static int nlines = 100;
- int show_cat(int width, int mwidth,
- char *name, char *mapset, int cat, char *label,
- int terse, char *fs, RASTER_MAP_TYPE map_type)
- {
- char *fname;
- char buf[100];
- CELL cell_val;
- cell_val = cat;
- if (map_type != CELL_TYPE)
- sprintf(buf, ", quant ");
- else
- sprintf(buf, " ");
- if (terse) {
- fname = G_fully_qualified_name(name, mapset);
- if (Rast_is_c_null_value(&cell_val)) {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%s%s%sNull%s%s\n", fname, buf, fs, fs,
- label);
- fprintf(stderr, "%s%s%sNull%s%s\n", fname, buf, fs, fs, label);
- }
- else {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%s%s%s%d%s%s\n", fname, buf, fs, cat, fs,
- label);
- fprintf(stderr, "%s%s%s%d%s%s\n", fname, buf, fs, cat, fs, label);
- }
- }
- else {
- if (Rast_is_c_null_value(&cell_val)) {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%*s in %-*s%s (Null)%s\n", width, name,
- mwidth, mapset, buf, label);
- fprintf(stderr, "%*s in %-*s%s (Null)%s\n", width, name, mwidth,
- mapset, buf, label);
- }
- else {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%*s in %-*s%s (%d)%s\n", width, name, mwidth,
- mapset, buf, cat, label);
- fprintf(stderr, "%*s in %-*s%s (%d)%s\n", width, name, mwidth,
- mapset, buf, cat, label);
- }
- }
- nlines += 1;
- return 0;
- }
- int show_dval(int width, int mwidth,
- char *name, char *mapset, DCELL dval, char *label,
- int terse, char *fs, RASTER_MAP_TYPE map_type)
- {
- DCELL dcell_val;
- char *fname;
- dcell_val = dval;
- if (terse) {
- fname = G_fully_qualified_name(name, mapset);
- if (Rast_is_d_null_value(&dcell_val)) {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%s, actual %sNull%s%s\n", fname, fs, fs,
- label);
- fprintf(stderr, "%s, actual %sNull%s%s\n", fname, fs, fs, label);
- }
- else {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%s, actual %s%.*g%s%s\n", fname, fs,
- map_type == FCELL_TYPE ? 7 : 15, dval, fs, label);
- fprintf(stderr, "%s, actual %s%.*g%s%s\n", fname, fs,
- map_type == FCELL_TYPE ? 7 : 15, dval, fs, label);
- }
- }
- else {
- if (Rast_is_d_null_value(&dcell_val)) {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%*s in %-*s, actual (Null)%s\n", width,
- name, mwidth, mapset, label);
- fprintf(stderr, "%*s in %-*s, actual (Null)%s\n", width, name,
- mwidth, mapset, label);
- }
- else {
- if (!isatty(fileno(stdout)))
- fprintf(stdout, "%*s in %-*s, actual (%.*g)%s\n", width, name,
- mwidth, mapset, map_type == FCELL_TYPE ? 7 : 15,
- dval, label);
- fprintf(stderr, "%*s in %-*s, actual (%.*g)%s\n", width, name,
- mwidth, mapset, map_type == FCELL_TYPE ? 7 : 15, dval,
- label);
- }
- }
- nlines += 1;
- return 0;
- }
- int show_utm(char *name, char *mapset, double north, double east,
- struct Cell_head *window, int terse, int colrow, int button,
- char *fs)
- {
- char e[50], n[50];
- int e_col, n_row;
- static char once = 1;
- static struct Cell_head cellhd;
- if (window->proj == PROJECTION_LL && !isatty(fileno(stdout))) {
- /* format in decimal rather than d.m.s */
- G_format_northing(north, n, -1);
- G_format_easting(east, e, -1);
- }
- else {
- G_format_northing(north, n, window->proj);
- G_format_easting(east, e, window->proj);
- }
- if (once) {
- /* speed up? */
- once = 0;
- Rast_get_cellhd(name, mapset, &cellhd);
- }
- n_row = (int)((cellhd.north - north) / window->ns_res);
- e_col = (int)((east - cellhd.west) / window->ew_res);
- if (terse) {
- if (!isatty(fileno(stdout))) {
- fprintf(stdout, "\n%s%s%s%s", e, fs, n, fs);
- if (colrow)
- fprintf(stdout, "%d%s%d%s", e_col, fs, n_row, fs);
- fprintf(stdout, "%d\n", button);
- }
- fprintf(stderr, "\n%s%s%s%s", e, fs, n, fs);
- if (colrow)
- fprintf(stderr, "%d%s%d%s", e_col, fs, n_row, fs);
- fprintf(stderr, "%d\n", button);
- }
- else {
- if (window->proj != PROJECTION_LL) {
- strcat(n, "(N)");
- strcat(e, "(E)");
- }
- if (!isatty(fileno(stdout))) {
- fprintf(stdout, "\n%s %s", e, n);
- if (colrow)
- fprintf(stdout, ", %d(col) %d(row)", e_col, n_row);
- fprintf(stdout, "\n");
- }
- fprintf(stderr, "\n%s %s", e, n);
- if (colrow)
- fprintf(stderr, ", %d(col) %d(row)", e_col, n_row);
- fprintf(stderr, "\n");
- }
- nlines += 2;
- return 0;
- }
- int show_buttons(int once)
- {
- if (once) {
- fprintf(stderr, "\nClick mouse button on desired location\n\n");
- nlines = 3;
- }
- else if (nlines >= 18) { /* display prompt every screen full */
- fprintf(stderr, "\n");
- fprintf(stderr, "Buttons\n");
- fprintf(stderr, " Left: what's here\n");
- fprintf(stderr, " Right: quit\n");
- nlines = 4;
- }
- return 0;
- }
|