1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-12-23 19:07:42 +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)
{
// 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,
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 vx[5];
int vy[5];
int half = (dim >> 1) + OFF;
int half = (dim >> 1) + GLABEL_OFFSET;
switch (dir) {
case 0:
@ -106,21 +110,29 @@ void fig_glabel(int x, int y, const char *s, int dir, int dim,
switch (shape) {
case fig_in:
text_shift(&txt, txt.hor, text_mid, -OFF - half, 0);
text_rel(&txt, text_min, text_min, -OFF, OFF, vx + 1, vy + 1);
text_rel(&txt, text_max, text_min, OFF, OFF, vx + 2, vy + 2);
text_rel(&txt, text_max, text_mid, OFF + half, 0,
text_shift(&txt, txt.hor, text_mid, -GLABEL_OFFSET - half, 0);
text_rel(&txt, text_min, text_min,
-GLABEL_OFFSET, GLABEL_OFFSET, vx + 1, vy + 1);
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);
text_rel(&txt, text_max, text_max, OFF, -OFF, vx + 4, vy + 4);
text_rel(&txt, text_min, text_max, -OFF, -OFF, vx + 5, vy + 5);
text_rel(&txt, text_max, text_max,
GLABEL_OFFSET, -GLABEL_OFFSET, vx + 4, vy + 4);
text_rel(&txt, text_min, text_max,
-GLABEL_OFFSET, -GLABEL_OFFSET, vx + 5, vy + 5);
break;
case fig_out:
text_shift(&txt, txt.hor, text_mid, -OFF, 0);
text_rel(&txt, text_min, text_min, -OFF, OFF, vx + 1, vy + 1);
text_rel(&txt, text_max, text_min, OFF, OFF, vx + 2, vy + 2);
text_rel(&txt, text_max, text_max, OFF, -OFF, vx + 3, vy + 3);
text_rel(&txt, text_min, text_max, -OFF, -OFF, vx + 4, vy + 4);
text_rel(&txt, text_min, text_mid, -OFF - half, 0,
text_shift(&txt, txt.hor, text_mid, -GLABEL_OFFSET, 0);
text_rel(&txt, text_min, text_min,
-GLABEL_OFFSET, GLABEL_OFFSET, vx + 1, vy + 1);
text_rel(&txt, text_max, text_min,
GLABEL_OFFSET, GLABEL_OFFSET, vx + 2, vy + 2);
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);
break;
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,
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)
{
printf("#FIG 3.2\n");

View File

@ -91,6 +91,9 @@ struct comp {
};
/* ----- Drawing ----------------------------------------------------------- */
static struct comp *comps = NULL;
static struct comp **next_comp = &comps;
static struct obj **next_obj;
@ -206,6 +209,9 @@ found:
}
/* ----- Text -------------------------------------------------------------- */
static enum text_style decode_style(const char *s)
{
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)
{
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)
{
int n = 0;

View File

@ -25,6 +25,9 @@
#include "sch.h"
/* ----- (Global) Labels --------------------------------------------------- */
static enum fig_shape do_decode_shape(const char *s)
{
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,
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 text txt;
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)
{
int n = 0;

View File

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