p2 = c1->pins[ el0->pins[n + 1]];
p3 = c1->pins[!el0->pins[n + 1]];
- if ((p1->y < p0->y && p3->y < p0->y)
- || (p1->y > p0->y && p3->y > p0->y)) {
+ if (p1->y < p0->y && p3->y < p0->y) {
- if ((p0->x > p2->x && p1->x < p3->x)
- || (p0->x < p2->x && p1->x > p3->x))
- SCF_XCHG(p0->x, p2->x);
+ if (p0->x > p2->x) {
+
+ if (p1->x < p3->x || p1->y > p3->y)
+ SCF_XCHG(p0->x, p2->x);
+
+ } else {
+ if (p1->x > p3->x || p1->y < p3->y)
+ SCF_XCHG(p0->x, p2->x);
+ }
+
+ } else if (p1->y > p0->y && p3->y > p0->y) {
+
+ if (p0->x > p2->x) {
+ if (p1->x < p3->x || p1->y < p3->y)
+ SCF_XCHG(p0->x, p2->x);
+ } else {
+ if (p1->x > p3->x || p1->y > p3->y)
+ SCF_XCHG(p0->x, p2->x);
+ }
}
}
}