mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2025-02-20 19:54:43 +02:00
sch2fig/: abstract graphical output interface
This commit is contained in:
parent
b933c9976f
commit
4267efae0d
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
NAME = sch2fig
|
NAME = sch2fig
|
||||||
OBJS = main.o sch.o lib.o fig.o dwg.o text.o misc.o
|
OBJS = main.o sch.o lib.o fig.o gfx.o dwg.o text.o misc.o
|
||||||
|
|
||||||
CFLAGS = -g -O -Wall -Wextra -Wno-unused-parameter -Wshadow
|
CFLAGS = -g -O -Wall -Wextra -Wno-unused-parameter -Wshadow
|
||||||
LIBS = -lm
|
LIBS = -lm
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "style.h"
|
#include "style.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "fig.h"
|
#include "gfx.h"
|
||||||
#include "dwg.h"
|
#include "dwg.h"
|
||||||
|
|
||||||
|
|
||||||
@ -231,7 +231,7 @@ void dwg_glabel(int x, int y, const char *s, int dir, int dim,
|
|||||||
|
|
||||||
vx[0] = vx[n - 1];
|
vx[0] = vx[n - 1];
|
||||||
vy[0] = vy[n - 1];
|
vy[0] = vy[n - 1];
|
||||||
fig_poly(n, vx, vy, COLOR_GLABEL, COLOR_NONE, LAYER_GLABEL);
|
gfx_poly(n, vx, vy, COLOR_GLABEL, COLOR_NONE, LAYER_GLABEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -361,7 +361,7 @@ void dwg_hlabel(int x, int y, const char *s, int dir, int dim,
|
|||||||
txt.rot = rot % 180;
|
txt.rot = rot % 180;
|
||||||
|
|
||||||
text_fig(&txt, COLOR_HLABEL, LAYER_HLABEL);
|
text_fig(&txt, COLOR_HLABEL, LAYER_HLABEL);
|
||||||
fig_poly(n + 1, vx, vy, COLOR_HLABEL, COLOR_NONE, LAYER_HLABEL);
|
gfx_poly(n + 1, vx, vy, COLOR_HLABEL, COLOR_NONE, LAYER_HLABEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -370,7 +370,7 @@ void dwg_hlabel(int x, int y, const char *s, int dir, int dim,
|
|||||||
|
|
||||||
void dwg_junction(int x, int y)
|
void dwg_junction(int x, int y)
|
||||||
{
|
{
|
||||||
fig_circ(x, y, JUNCTION_R, COLOR_NONE, COLOR_WIRE, LAYER_WIRES);
|
gfx_circ(x, y, JUNCTION_R, COLOR_NONE, COLOR_WIRE, LAYER_WIRES);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -379,9 +379,9 @@ void dwg_noconn(int x, int y)
|
|||||||
int vx[2] = { x - NOCONN_LEN, x + NOCONN_LEN };
|
int vx[2] = { x - NOCONN_LEN, x + NOCONN_LEN };
|
||||||
int vy[2] = { y - NOCONN_LEN, y + NOCONN_LEN };
|
int vy[2] = { y - NOCONN_LEN, y + NOCONN_LEN };
|
||||||
|
|
||||||
fig_poly(2, vx, vy, COLOR_NOCONN, COLOR_NONE, LAYER_NOCONN);
|
gfx_poly(2, vx, vy, COLOR_NOCONN, COLOR_NONE, LAYER_NOCONN);
|
||||||
swap(vy[0], vy[1]);
|
swap(vy[0], vy[1]);
|
||||||
fig_poly(2, vx, vy, COLOR_NOCONN, COLOR_NONE, LAYER_NOCONN);
|
gfx_poly(2, vx, vy, COLOR_NOCONN, COLOR_NONE, LAYER_NOCONN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -394,7 +394,7 @@ void dwg_wire(int sx, int sy, int ex, int ey)
|
|||||||
int vy[] = { sy, ey };
|
int vy[] = { sy, ey };
|
||||||
|
|
||||||
// WIDTH_WIRE
|
// WIDTH_WIRE
|
||||||
fig_poly(2, vx, vy, COLOR_WIRE, COLOR_NONE, LAYER_WIRES);
|
gfx_poly(2, vx, vy, COLOR_WIRE, COLOR_NONE, LAYER_WIRES);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -404,5 +404,5 @@ void dwg_bus(int sx, int sy, int ex, int ey)
|
|||||||
int vy[] = { sy, ey };
|
int vy[] = { sy, ey };
|
||||||
|
|
||||||
// WIDTH_BUS
|
// WIDTH_BUS
|
||||||
fig_poly(2, vx, vy, COLOR_BUS, COLOR_NONE, LAYER_BUSSES);
|
gfx_poly(2, vx, vy, COLOR_BUS, COLOR_NONE, LAYER_BUSSES);
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ static inline float pt(int x)
|
|||||||
/* ----- Schematics items -------------------------------------------------- */
|
/* ----- Schematics items -------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
void fig_line(int sx, int sy, int ex, int ey)
|
void fig_line(void *ctx, int sx, int sy, int ex, int ey)
|
||||||
{
|
{
|
||||||
// TypeStyle FillCol AreaFil Cap FwdAr
|
// TypeStyle FillCol AreaFil Cap FwdAr
|
||||||
// SubTy Color Pen StyleV Rad BwdAr
|
// SubTy Color Pen StyleV Rad BwdAr
|
||||||
@ -65,7 +65,7 @@ void fig_line(int sx, int sy, int ex, int ey)
|
|||||||
/* ----- General items ----------------------------------------------------- */
|
/* ----- General items ----------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
void fig_rect(int sx, int sy, int ex, int ey,
|
void fig_rect(void *ctx, int sx, int sy, int ex, int ey,
|
||||||
int color, int fill_color, unsigned layer)
|
int color, int fill_color, unsigned layer)
|
||||||
{
|
{
|
||||||
// Type Thick Depth StyleV Rad
|
// Type Thick Depth StyleV Rad
|
||||||
@ -80,7 +80,7 @@ void fig_rect(int sx, int sy, int ex, int ey,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fig_poly(int points, int x[points], int y[points],
|
void fig_poly(void *ctx, int points, int x[points], int y[points],
|
||||||
int color, int fill_color, unsigned layer)
|
int color, int fill_color, unsigned layer)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -100,7 +100,8 @@ void fig_poly(int points, int x[points], int y[points],
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fig_circ(int x, int y, int r, int color, int fill_color, unsigned layer)
|
void fig_circ(void *ctx, int x, int y, int r,
|
||||||
|
int color, int fill_color, unsigned layer)
|
||||||
{
|
{
|
||||||
// Type Thick Depth StyleV Cx Rx Sx Ex
|
// Type Thick Depth StyleV Cx Rx Sx Ex
|
||||||
// SubTy Color Pen Dir Cy Ry Sy Ey
|
// SubTy Color Pen Dir Cy Ry Sy Ey
|
||||||
@ -129,7 +130,7 @@ static int ay(int x, int y, int r, int angle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fig_arc(int x, int y, int r, int sa, int ea,
|
void fig_arc(void *ctx, int x, int y, int r, int sa, int ea,
|
||||||
int color, int fill_color, unsigned layer)
|
int color, int fill_color, unsigned layer)
|
||||||
{
|
{
|
||||||
int ma = (sa + ea) / 2;
|
int ma = (sa + ea) / 2;
|
||||||
@ -147,7 +148,7 @@ void fig_arc(int x, int y, int r, int sa, int ea,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fig_text(int x, int y, const char *s, unsigned size,
|
void fig_text(void *ctx, 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)
|
||||||
{
|
{
|
||||||
// Type Depth FontSiz Height
|
// Type Depth FontSiz Height
|
||||||
@ -201,14 +202,14 @@ static bool apply_vars(char *buf, int n_vars, const char **vars)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fig_init(const char *template, int n_vars, const char **vars)
|
void *fig_init(const char *template, int n_vars, const char **vars)
|
||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
char buf[1000];
|
char buf[1000];
|
||||||
|
|
||||||
if (!template) {
|
if (!template) {
|
||||||
fig_header();
|
fig_header();
|
||||||
return;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
file = fopen(template, "r");
|
file = fopen(template, "r");
|
||||||
@ -221,4 +222,20 @@ void fig_init(const char *template, int n_vars, const char **vars)
|
|||||||
printf("%s", buf);
|
printf("%s", buf);
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----- Operations -------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
const struct gfx_ops fig_ops = {
|
||||||
|
.line = fig_line,
|
||||||
|
.rect = fig_rect,
|
||||||
|
.poly = fig_poly,
|
||||||
|
.circ = fig_circ,
|
||||||
|
.arc = fig_arc,
|
||||||
|
.text = fig_text,
|
||||||
|
.init = fig_init,
|
||||||
|
};
|
||||||
|
@ -14,27 +14,9 @@
|
|||||||
#ifndef FIG_H
|
#ifndef FIG_H
|
||||||
#define FIG_H
|
#define FIG_H
|
||||||
|
|
||||||
#include "text.h"
|
#include "gfx.h"
|
||||||
|
|
||||||
|
|
||||||
/* schematics */
|
extern const struct gfx_ops fig_ops;
|
||||||
|
|
||||||
void fig_line(int sx, int sy, int ex, int ey);
|
|
||||||
|
|
||||||
/* general */
|
|
||||||
|
|
||||||
void fig_rect(int sx, int sy, int ex, int ey,
|
|
||||||
int color, int fill_color, unsigned layer);
|
|
||||||
void fig_poly(int points, int x[points], int y[points],
|
|
||||||
int color, int fill_color, unsigned layer);
|
|
||||||
void fig_circ(int x, int y, int r, int color, int fill_color, unsigned layer);
|
|
||||||
void fig_arc(int x, int y, int r, int sa, int ea,
|
|
||||||
int color, int fill_color, unsigned layer);
|
|
||||||
void fig_text(int x, int y, const char *s, unsigned size,
|
|
||||||
enum text_align align, int rot, unsigned color, unsigned layer);
|
|
||||||
|
|
||||||
/* inititalization */
|
|
||||||
|
|
||||||
void fig_init(const char *template, int n_vars, const char **vars);
|
|
||||||
|
|
||||||
#endif /* !FIG_H */
|
#endif /* !FIG_H */
|
||||||
|
76
sch2fig/gfx.c
Normal file
76
sch2fig/gfx.c
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/*
|
||||||
|
* gfx.c - Generate graphical output for Eeschema items
|
||||||
|
*
|
||||||
|
* Written 2016 by Werner Almesberger
|
||||||
|
* Copyright 2016 by Werner Almesberger
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "text.h"
|
||||||
|
#include "gfx.h"
|
||||||
|
|
||||||
|
|
||||||
|
static const struct gfx_ops *gfx_ops;
|
||||||
|
static void *gfx_ctx;
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_line(int sx, int sy, int ex, int ey)
|
||||||
|
{
|
||||||
|
gfx_ops->line(gfx_ctx, sx, sy, ex, ey);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_rect(int sx, int sy, int ex, int ey,
|
||||||
|
int color, int fill_color, unsigned layer)
|
||||||
|
{
|
||||||
|
if (gfx_ops->rect) {
|
||||||
|
gfx_ops->rect(gfx_ctx, sx, sy, ex, ey,
|
||||||
|
color, fill_color, layer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int vx[] = { sx, ex, ex, sx, sx };
|
||||||
|
int vy[] = { sy, sy, ey, ey, sy };
|
||||||
|
|
||||||
|
gfx_poly(5, vx, vy, color, fill_color, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_poly(int points, int x[points], int y[points],
|
||||||
|
int color, int fill_color, unsigned layer)
|
||||||
|
{
|
||||||
|
gfx_ops->poly(gfx_ctx, points, x, y, color, fill_color, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_circ(int x, int y, int r, int color, int fill_color, unsigned layer)
|
||||||
|
{
|
||||||
|
gfx_ops->circ(gfx_ctx, x, y, r, color, fill_color, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_arc(int x, int y, int r, int sa, int ea,
|
||||||
|
int color, int fill_color, unsigned layer)
|
||||||
|
{
|
||||||
|
gfx_ops->arc(gfx_ctx, x, y, r, sa, ea, color, fill_color, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_text(int x, int y, const char *s, unsigned size,
|
||||||
|
enum text_align align, int rot, unsigned color, unsigned layer)
|
||||||
|
{
|
||||||
|
gfx_ops->text(gfx_ctx, x, y, s, size, align, rot, color, layer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void gfx_init(const struct gfx_ops *ops,
|
||||||
|
const char *template, int n_vars, const char **vars)
|
||||||
|
{
|
||||||
|
gfx_ops = ops;
|
||||||
|
gfx_ctx = ops->init(template, n_vars, vars);
|
||||||
|
}
|
54
sch2fig/gfx.h
Normal file
54
sch2fig/gfx.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* gfx.h - Generate graphical output for Eeschema items
|
||||||
|
*
|
||||||
|
* Written 2016 by Werner Almesberger
|
||||||
|
* Copyright 2016 by Werner Almesberger
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef GFX_H
|
||||||
|
#define GFX_H
|
||||||
|
|
||||||
|
#include "text.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct gfx_ops {
|
||||||
|
void (*line)(void *ctx, int sx, int sy, int ex, int ey);
|
||||||
|
void (*rect)(void *ctx, int sx, int sy, int ex, int ey,
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void (*poly)(void *ctx, int points, int x[points], int y[points],
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void (*circ)(void *ctx, int x, int y, int r,
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void (*arc)(void *ctx, int x, int y, int r, int sa, int ea,
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void (*text)(void *ctx, int x, int y, const char *s, unsigned size,
|
||||||
|
enum text_align align, int rot, unsigned color, unsigned layer);
|
||||||
|
void *(*init)(const char *template, int n_vars, const char **vars);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* wrappers */
|
||||||
|
|
||||||
|
void gfx_line(int sx, int sy, int ex, int ey);
|
||||||
|
void gfx_rect(int sx, int sy, int ex, int ey,
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void gfx_poly(int points, int x[points], int y[points],
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void gfx_circ(int x, int y, int r, int color, int fill_color, unsigned layer);
|
||||||
|
void gfx_arc(int x, int y, int r, int sa, int ea,
|
||||||
|
int color, int fill_color, unsigned layer);
|
||||||
|
void gfx_text(int x, int y, const char *s, unsigned size,
|
||||||
|
enum text_align align, int rot, unsigned color, unsigned layer);
|
||||||
|
|
||||||
|
/* inititalization */
|
||||||
|
|
||||||
|
void gfx_init(const struct gfx_ops *ops,
|
||||||
|
const char *template, int n_vars, const char **vars);
|
||||||
|
|
||||||
|
#endif /* !GFX_H */
|
@ -20,7 +20,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "style.h"
|
#include "style.h"
|
||||||
#include "fig.h"
|
#include "gfx.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
#include "sch.h"
|
#include "sch.h"
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
@ -114,17 +114,17 @@ static void draw_poly(const struct poly_obj *poly, int m[6])
|
|||||||
y[i] = my(poly->x[i], poly->y[i], m);
|
y[i] = my(poly->x[i], poly->y[i], m);
|
||||||
}
|
}
|
||||||
|
|
||||||
fig_poly(n, x, y, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
gfx_poly(n, x, y, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
||||||
|
|
||||||
switch (poly->fill) {
|
switch (poly->fill) {
|
||||||
case 'N':
|
case 'N':
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
fig_poly(n, x, y, COLOR_NONE, COLOR_COMP_DWG,
|
gfx_poly(n, x, y, COLOR_NONE, COLOR_COMP_DWG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
fig_poly(n, x, y, COLOR_NONE, COLOR_COMP_DWG_BG,
|
gfx_poly(n, x, y, COLOR_NONE, COLOR_COMP_DWG_BG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -140,17 +140,17 @@ static void draw_rect(const struct rect_obj *rect, int m[6])
|
|||||||
int ex = mx(rect->ex, rect->ey, m);
|
int ex = mx(rect->ex, rect->ey, m);
|
||||||
int ey = my(rect->ex, rect->ey, m);
|
int ey = my(rect->ex, rect->ey, m);
|
||||||
|
|
||||||
fig_rect(sx, sy, ex, ey, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
gfx_rect(sx, sy, ex, ey, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
||||||
|
|
||||||
switch (rect->fill) {
|
switch (rect->fill) {
|
||||||
case 'N':
|
case 'N':
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
fig_rect(sx, sy, ex, ey, COLOR_NONE, COLOR_COMP_DWG,
|
gfx_rect(sx, sy, ex, ey, COLOR_NONE, COLOR_COMP_DWG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
fig_rect(sx, sy, ex, ey, COLOR_NONE, COLOR_COMP_DWG_BG,
|
gfx_rect(sx, sy, ex, ey, COLOR_NONE, COLOR_COMP_DWG_BG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -165,17 +165,17 @@ static void draw_circ(const struct circ_obj *circ, int m[6])
|
|||||||
int y = my(circ->x, circ->y, m);
|
int y = my(circ->x, circ->y, m);
|
||||||
int r = circ->r;
|
int r = circ->r;
|
||||||
|
|
||||||
fig_circ(x, y, r, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
gfx_circ(x, y, r, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
||||||
|
|
||||||
switch (circ->fill) {
|
switch (circ->fill) {
|
||||||
case 'N':
|
case 'N':
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
fig_circ(x, y, r, COLOR_NONE, COLOR_COMP_DWG,
|
gfx_circ(x, y, r, COLOR_NONE, COLOR_COMP_DWG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
fig_circ(x, y, r, COLOR_NONE, COLOR_COMP_DWG_BG,
|
gfx_circ(x, y, r, COLOR_NONE, COLOR_COMP_DWG_BG,
|
||||||
LAYER_COMP_DWG_BG);
|
LAYER_COMP_DWG_BG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -205,7 +205,7 @@ static void draw_arc(const struct arc_obj *arc, int m[6])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fig_arc(x, y, arc->r, sa, ea,
|
gfx_arc(x, y, arc->r, sa, ea,
|
||||||
COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
||||||
|
|
||||||
assert(arc->fill == 'N');
|
assert(arc->fill == 'N');
|
||||||
@ -358,7 +358,7 @@ static void draw_pin(const struct comp *comp, const struct pin_obj *pin,
|
|||||||
y[0] = my(pin->x, pin->y, m);
|
y[0] = my(pin->x, pin->y, m);
|
||||||
x[1] = mx(pin->x + dx * pin->length, pin->y + dy * pin->length, m);
|
x[1] = mx(pin->x + dx * pin->length, pin->y + dy * pin->length, m);
|
||||||
y[1] = my(pin->x + dx * pin->length, pin->y + dy * pin->length, m);
|
y[1] = my(pin->x + dx * pin->length, pin->y + dy * pin->length, m);
|
||||||
fig_poly(2, x, y, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
gfx_poly(2, x, y, COLOR_COMP_DWG, COLOR_NONE, LAYER_COMP_DWG);
|
||||||
|
|
||||||
if (comp->show_pin_name)
|
if (comp->show_pin_name)
|
||||||
draw_pin_name(comp, pin, m, dx, dy, rot, hor);
|
draw_pin_name(comp, pin, m, dx, dy, rot, hor);
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "fig.h"
|
#include "fig.h"
|
||||||
|
#include "gfx.h"
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
#include "sch.h"
|
#include "sch.h"
|
||||||
|
|
||||||
@ -92,7 +93,7 @@ int main(int argc, char **argv)
|
|||||||
if (argc - optind < 1)
|
if (argc - optind < 1)
|
||||||
usage(*argv);
|
usage(*argv);
|
||||||
|
|
||||||
fig_init(template, n_vars, vars);
|
gfx_init(&fig_ops, template, n_vars, vars);
|
||||||
for (arg = optind; arg != argc; arg++) {
|
for (arg = optind; arg != argc; arg++) {
|
||||||
if (arg == argc - 1) {
|
if (arg == argc - 1) {
|
||||||
struct sch_ctx ctx;
|
struct sch_ctx ctx;
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "style.h"
|
#include "style.h"
|
||||||
#include "fig.h"
|
#include "gfx.h"
|
||||||
#include "dwg.h"
|
#include "dwg.h"
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
#include "sch.h"
|
#include "sch.h"
|
||||||
@ -479,7 +479,7 @@ bool sch_parse(struct sch_ctx *ctx, const char *line)
|
|||||||
}
|
}
|
||||||
if (sscanf(line, "Wire Notes Line%n", &n) == 0 && n) {
|
if (sscanf(line, "Wire Notes Line%n", &n) == 0 && n) {
|
||||||
ctx->state = sch_wire;
|
ctx->state = sch_wire;
|
||||||
ctx->wire = fig_line;
|
ctx->wire = gfx_line;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,7 +554,7 @@ bool sch_parse(struct sch_ctx *ctx, const char *line)
|
|||||||
}
|
}
|
||||||
if (sscanf(line, "S %d %d %u %u",
|
if (sscanf(line, "S %d %d %u %u",
|
||||||
&ctx->x, &ctx->y, &ctx->w, &ctx->h) == 4) {
|
&ctx->x, &ctx->y, &ctx->w, &ctx->h) == 4) {
|
||||||
fig_rect(ctx->x, ctx->y,
|
gfx_rect(ctx->x, ctx->y,
|
||||||
ctx->x + ctx->w, ctx->y + ctx->h,
|
ctx->x + ctx->w, ctx->y + ctx->h,
|
||||||
COLOR_HSHEET_BOX, COLOR_NONE, LAYER_HSHEET_BOX);
|
COLOR_HSHEET_BOX, COLOR_NONE, LAYER_HSHEET_BOX);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "style.h"
|
#include "style.h"
|
||||||
#include "fig.h"
|
#include "gfx.h"
|
||||||
#include "text.h"
|
#include "text.h"
|
||||||
|
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ void text_fig(const struct text *txt, int color, unsigned layer)
|
|||||||
if (!s)
|
if (!s)
|
||||||
break;
|
break;
|
||||||
tmp = NULL;
|
tmp = NULL;
|
||||||
fig_text(x, y, s, txt->size, txt->hor, txt->rot, color, layer);
|
gfx_text(x, y, s, txt->size, txt->hor, txt->rot, color, layer);
|
||||||
x += rx(0, NEWLINE_SKIP * txt->size, txt->rot);
|
x += rx(0, NEWLINE_SKIP * txt->size, txt->rot);
|
||||||
y += ry(0, NEWLINE_SKIP * txt->size, txt->rot);
|
y += ry(0, NEWLINE_SKIP * txt->size, txt->rot);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user