1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-27 04:52:48 +02:00

sch2fig/: slight cleanup

This commit is contained in:
Werner Almesberger 2016-07-23 15:07:50 -03:00
parent da22f1cc57
commit 1bab610e9e
4 changed files with 58 additions and 14 deletions

View File

@ -45,6 +45,9 @@ static inline float pt(int x)
} }
/* ----- Library items ----------------------------------------------------- */
void fig_rect(int sx, int sy, int ex, int ey) void fig_rect(int sx, int sy, int ex, int ey)
{ {
// Type Thick Depth StyleV Rad // Type Thick Depth StyleV Rad
@ -76,7 +79,8 @@ void fig_poly(int points, int x[points], int y[points])
} }
#define OFF 20 /* ----- Schematics items -------------------------------------------------- */
void fig_glabel(int x, int y, const char *s, int dir, int dim, void fig_glabel(int x, int y, const char *s, int dir, int dim,
enum fig_shape shape) enum fig_shape shape)
@ -93,7 +97,7 @@ void fig_glabel(int x, int y, const char *s, int dir, int dim,
int n = 6; int n = 6;
int vx[5]; int vx[5];
int vy[5]; int vy[5];
int half = (dim >> 1) + OFF; int half = (dim >> 1) + GLABEL_OFFSET;
switch (dir) { switch (dir) {
case 0: case 0:
@ -106,21 +110,29 @@ void fig_glabel(int x, int y, const char *s, int dir, int dim,
switch (shape) { switch (shape) {
case fig_in: case fig_in:
text_shift(&txt, txt.hor, text_mid, -OFF - half, 0); text_shift(&txt, txt.hor, text_mid, -GLABEL_OFFSET - half, 0);
text_rel(&txt, text_min, text_min, -OFF, OFF, vx + 1, vy + 1); text_rel(&txt, text_min, text_min,
text_rel(&txt, text_max, text_min, OFF, OFF, vx + 2, vy + 2); -GLABEL_OFFSET, GLABEL_OFFSET, vx + 1, vy + 1);
text_rel(&txt, text_max, text_mid, OFF + half, 0, text_rel(&txt, text_max, text_min,
GLABEL_OFFSET, GLABEL_OFFSET, vx + 2, vy + 2);
text_rel(&txt, text_max, text_mid, GLABEL_OFFSET + half, 0,
vx + 3, vy + 3); vx + 3, vy + 3);
text_rel(&txt, text_max, text_max, OFF, -OFF, vx + 4, vy + 4); text_rel(&txt, text_max, text_max,
text_rel(&txt, text_min, text_max, -OFF, -OFF, vx + 5, vy + 5); GLABEL_OFFSET, -GLABEL_OFFSET, vx + 4, vy + 4);
text_rel(&txt, text_min, text_max,
-GLABEL_OFFSET, -GLABEL_OFFSET, vx + 5, vy + 5);
break; break;
case fig_out: case fig_out:
text_shift(&txt, txt.hor, text_mid, -OFF, 0); text_shift(&txt, txt.hor, text_mid, -GLABEL_OFFSET, 0);
text_rel(&txt, text_min, text_min, -OFF, OFF, vx + 1, vy + 1); text_rel(&txt, text_min, text_min,
text_rel(&txt, text_max, text_min, OFF, OFF, vx + 2, vy + 2); -GLABEL_OFFSET, GLABEL_OFFSET, vx + 1, vy + 1);
text_rel(&txt, text_max, text_max, OFF, -OFF, vx + 3, vy + 3); text_rel(&txt, text_max, text_min,
text_rel(&txt, text_min, text_max, -OFF, -OFF, vx + 4, vy + 4); GLABEL_OFFSET, GLABEL_OFFSET, vx + 2, vy + 2);
text_rel(&txt, text_min, text_mid, -OFF - half, 0, text_rel(&txt, text_max, text_max,
GLABEL_OFFSET, -GLABEL_OFFSET, vx + 3, vy + 3);
text_rel(&txt, text_min, text_max,
-GLABEL_OFFSET, -GLABEL_OFFSET, vx + 4, vy + 4);
text_rel(&txt, text_min, text_mid, -GLABEL_OFFSET- half, 0,
vx + 5, vy + 5); vx + 5, vy + 5);
break; break;
default: default:
@ -168,6 +180,9 @@ void fig_line(int sx, int sy, int ex, int ey)
} }
/* ----- General items ----------------------------------------------------- */
void fig_text(int x, int y, const char *s, unsigned size, void fig_text(int x, int y, const char *s, unsigned size,
enum text_align align, int rot, unsigned color, unsigned layer) enum text_align align, int rot, unsigned color, unsigned layer)
{ {
@ -180,6 +195,9 @@ void fig_text(int x, int y, const char *s, unsigned size,
} }
/* ----- FIG file header --------------------------------------------------- */
void fig_init(void) void fig_init(void)
{ {
printf("#FIG 3.2\n"); printf("#FIG 3.2\n");

View File

@ -91,6 +91,9 @@ struct comp {
}; };
/* ----- Drawing ----------------------------------------------------------- */
static struct comp *comps = NULL; static struct comp *comps = NULL;
static struct comp **next_comp = &comps; static struct comp **next_comp = &comps;
static struct obj **next_obj; static struct obj **next_obj;
@ -206,6 +209,9 @@ found:
} }
/* ----- Text -------------------------------------------------------------- */
static enum text_style decode_style(const char *s) static enum text_style decode_style(const char *s)
{ {
if (!strcmp(s, "Normal")) if (!strcmp(s, "Normal"))
@ -214,6 +220,9 @@ static enum text_style decode_style(const char *s)
} }
/* ----- Polygons ---------------------------------------------------------- */
static bool parse_poly(struct obj *obj, const char *line, int points) static bool parse_poly(struct obj *obj, const char *line, int points)
{ {
int i, n; int i, n;
@ -233,6 +242,9 @@ static bool parse_poly(struct obj *obj, const char *line, int points)
} }
/* ----- Library parser ---------------------------------------------------- */
bool lib_parse(struct lib_ctx *ctx, const char *line) bool lib_parse(struct lib_ctx *ctx, const char *line)
{ {
int n = 0; int n = 0;

View File

@ -25,6 +25,9 @@
#include "sch.h" #include "sch.h"
/* ----- (Global) Labels --------------------------------------------------- */
static enum fig_shape do_decode_shape(const char *s) static enum fig_shape do_decode_shape(const char *s)
{ {
if (!strcmp(s, "UnSpc")) if (!strcmp(s, "UnSpc"))
@ -50,6 +53,9 @@ static enum fig_shape decode_shape(const char *s)
} }
/* ----- Text -------------------------------------------------------------- */
static void draw_text(int x, int y, const char *s, int dir, int dim, static void draw_text(int x, int y, const char *s, int dir, int dim,
enum fig_shape shape) enum fig_shape shape)
{ {
@ -57,6 +63,9 @@ static void draw_text(int x, int y, const char *s, int dir, int dim,
} }
/* ----- Component fields -------------------------------------------------- */
struct sch_field { struct sch_field {
struct text txt; struct text txt;
struct sch_field *next; struct sch_field *next;
@ -179,6 +188,9 @@ static void dump_fields(struct sch_field *fields, int m[6])
} }
/* ----- Schematics parser ------------------------------------------------- */
bool sch_parse(struct sch_ctx *ctx, const char *line) bool sch_parse(struct sch_ctx *ctx, const char *line)
{ {
int n = 0; int n = 0;

View File

@ -42,4 +42,6 @@
#define JUNCTION_R 40 #define JUNCTION_R 40
#define GLABEL_OFFSET 20
#endif /* !STYLE_H */ #endif /* !STYLE_H */