int element_count(FILE *fp, char c) { char line[LINE_MAX]; int count = 0; while (fgets(line, LINE_MAX, fp) != NULL) { if (line_type(line) == c) count++; } rewind(fp); return count; }
void vertex_read(FILE *fp, struct vertex *vertex, int count) { char line[LINE_MAX]; int i = 0; while ((i < count) && (fgets(line, LINE_MAX, fp) != NULL)) { if (line_type(line) == 'v') { vertex_scan(line, &vertex[i]); i++; } } rewind(fp); }
void face_read(FILE *fp, struct face *face, int face_count, struct vertex *vertex, int vertex_count) { char line[LINE_MAX]; int i = 0; while ((i < face_count) && (fgets(line, LINE_MAX, fp) != NULL)) { if (line_type(line) == 'f') { face_scan(line, &face[i], vertex, vertex_count); i++; } } rewind(fp); }
const ShapeFunction& QuadFluxP3::line() const { return line_type(); }
void plot(void) { int c; int w, n, xmin, ymin, xmax, ymax; int x0, y0, r1, r2, arg1, arg2; while ((c = getchar()) != EOF) { switch (c) { case 'M': scanf("%d %d", &pb.x, &pb.y); _move(pb.x, pb.y); break; case 'D': _line(); break; case '%': scanf("%d", &n); hatching(n); break; /* polyg(n); break; */ case 'P': get_str(); break; case 'S': scanf("%d", &ch); break; case 'Q': scanf("%d", &cw); break; case 'R': scanf("%d", &th); th = (th == 0) ? 0 : 1; break; case 'L': scanf("%d", &w); line_type(w); break; case 'K': scanf("%d", &w); join_type(w); break; case 'W': scanf("%d %d %d %d %d %d", &x0, &y0, &r1, &r2, &arg1, &arg2); circle(x0, y0, r1, r2, arg1, arg2); break; case 'N': scanf("%d", &w); mark(w); break; case 'J': scanf("%d", &w); newpen(w); break; case '\\': scanf("%d %d", &xmin, &ymin); break; case 'Z': scanf("%d %d", &xmax, &ymax); if (!landscape) { if (xmax > XLENG) xmax = XLENG; if (ymax > YLENG) ymax = YLENG; } else { if (xmax > YLENG) xmax = YLENG; if (ymax > XLENG) ymax = XLENG; } clip(normx(xmin), normy(ymax), normx(xmax), normy(ymin)); break; case ';': case ':': break; default: break; } } }