el0->n_lines = 0;
- scf_logd("el0: %ld, n_conns: %ld, n_pins: %ld, flags: %#lx\n", el0->id, el0->n_conns, el0->n_pins, el0->flags);
+ scf_logw("el0: %ld, n_conns: %ld, n_pins: %ld, flags: %#lx\n", el0->id, el0->n_conns, el0->n_pins, el0->flags);
for (j = 0; j < el0->n_conns; j++) {
ec = el0->conns[j];
- scf_logd("j: %ld, lid: %ld, n_cids: %ld, cid[0]: %ld\n", j, ec->lid, ec->n_cids, ec->cids[0]);
+ scf_logi("j: %ld, lid: %ld, n_cids: %ld, cid[0]: %ld\n", j, ec->lid, ec->n_cids, ec->cids[0]);
}
-// printf("\n");
+ printf("\n");
}
#endif
return ret;
}
-// ses_steps_analyse(f, 5, 1);
+ ses_steps_analyse(f, 5, 1);
x = f->x;
y = f->y;
cairo_line_to(cr, p->x, p->y);
}
+ cairo_stroke(cr);
break;
case SCF_EDA_Resistor:
p = c->pins[1];
cairo_move_to (cr, p->x, p->y);
cairo_line_to (cr, c->x + dx1, c->y + dy1);
+
+ cairo_stroke(cr);
break;
case SCF_EDA_Diode:
cairo_line_to (cr, c->x + dx1, c->y + dy1);
cairo_rel_move_to(cr, dx0, dy0);
cairo_rel_line_to(cr, -dx0 * 2, -dy0 * 2);
+
+ cairo_stroke(cr);
break;
case SCF_EDA_NPN:
cairo_line_to (cr, c->x - dx3, c->y - dy3);
cairo_rel_move_to(cr, dx0, dy0);
cairo_rel_line_to(cr, -dx0 * 2, -dy0 * 2);
+ cairo_stroke(cr);
+
+ if ((c->x + dx3 + dx0 > c->x + dx3 - dx0 && pe->x > pc->x)
+ || (c->x + dx3 + dx0 < c->x + dx3 - dx0 && pe->x < pc->x)) {
- cairo_move_to(cr, c->x - dx3, c->y - dy3);
- cairo_line_to(cr, c->x + dx3 + dx0, c->y + dy3 + dy0);
- cairo_line_to(cr, pe->x, pe->y);
+ cairo_move_to(cr, c->x - dx3, c->y - dy3);
+ cairo_line_to(cr, c->x + dx3 + dx0, c->y + dy3 + dy0);
+ cairo_line_to(cr, pe->x, pe->y);
- vertical(&dx1, &dy1, dx3 * 2 + dx0, dy3 * 2 + dy0, 3);
- forward (&dx4, &dy4, dx3 * 2 + dx0, dy3 * 2 + dy0, 8);
+ vertical(&dx1, &dy1, dx3 * 2 + dx0, dy3 * 2 + dy0, 3);
+ forward (&dx4, &dy4, dx3 * 2 + dx0, dy3 * 2 + dy0, 8);
- cairo_move_to(cr, c->x - dx3 + dx4 + dx1, c->y - dy3 + dy4 + dy1);
- cairo_line_to(cr, c->x + dx3 + dx0, c->y + dy3 + dy0);
- cairo_line_to(cr, c->x - dx3 + dx4 - dx1, c->y - dy3 + dy4 - dy1);
+ cairo_move_to(cr, c->x - dx3 + dx4 + dx1, c->y - dy3 + dy4 + dy1);
+ cairo_line_to(cr, c->x + dx3 + dx0, c->y + dy3 + dy0);
+ cairo_line_to(cr, c->x - dx3 + dx4 - dx1, c->y - dy3 + dy4 - dy1);
+ cairo_stroke(cr);
- cairo_move_to(cr, c->x - dx3, c->y - dy3);
- cairo_line_to(cr, c->x + dx3 - dx0, c->y + dy3 - dy0);
- cairo_line_to(cr, pc->x, pc->y);
+ cairo_move_to(cr, c->x - dx3, c->y - dy3);
+ cairo_line_to(cr, c->x + dx3 - dx0, c->y + dy3 - dy0);
+ cairo_line_to(cr, pc->x, pc->y);
+ cairo_stroke(cr);
+ } else {
+ cairo_move_to(cr, c->x - dx3, c->y - dy3);
+ cairo_line_to(cr, c->x + dx3 + dx0, c->y + dy3 + dy0);
+ cairo_line_to(cr, pc->x, pc->y);
+ cairo_stroke(cr);
+
+ cairo_move_to(cr, c->x - dx3, c->y - dy3);
+ cairo_line_to(cr, c->x + dx3 - dx0, c->y + dy3 - dy0);
+ cairo_line_to(cr, pe->x, pe->y);
+
+ vertical(&dx1, &dy1, dx3 * 2 - dx0, dy3 * 2 - dy0, 3);
+ forward (&dx4, &dy4, dx3 * 2 - dx0, dy3 * 2 - dy0, 8);
+
+ cairo_move_to(cr, c->x - dx3 + dx4 + dx1, c->y - dy3 + dy4 + dy1);
+ cairo_line_to(cr, c->x + dx3 - dx0, c->y + dy3 - dy0);
+ cairo_line_to(cr, c->x - dx3 + dx4 - dx1, c->y - dy3 + dy4 - dy1);
+ cairo_stroke(cr);
+ }
break;
default:
break;
};
- cairo_stroke(cr);
}
cairo_surface_write_to_png(surface, "./simplify.png");