1 Clazz.declarePackage ("jssun.awt.geom");
\r
2 Clazz.load (null, "jssun.awt.geom.ChainEnd", ["java.lang.InternalError"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
8 Clazz.instantialize (this, arguments);
\r
9 }, jssun.awt.geom, "ChainEnd");
\r
10 Clazz.makeConstructor (c$,
\r
11 function (first, partner) {
\r
14 this.partner = partner;
\r
15 this.etag = first.getEdgeTag ();
\r
16 }, "jssun.awt.geom.CurveLink,jssun.awt.geom.ChainEnd");
\r
17 Clazz.defineMethod (c$, "getChain",
\r
21 Clazz.defineMethod (c$, "setOtherEnd",
\r
22 function (partner) {
\r
23 this.partner = partner;
\r
24 }, "jssun.awt.geom.ChainEnd");
\r
25 Clazz.defineMethod (c$, "getPartner",
\r
27 return this.partner;
\r
29 Clazz.defineMethod (c$, "linkTo",
\r
31 if (this.etag == 0 || that.etag == 0) {
\r
32 throw new InternalError ("ChainEnd linked more than once!");
\r
33 }if (this.etag == that.etag) {
\r
34 throw new InternalError ("Linking chains of the same type!");
\r
37 if (this.etag == 1) {
\r
45 enter.tail.setNext (exit.head);
\r
46 enter.tail = exit.tail;
\r
47 if (this.partner === that) {
\r
49 }var otherenter = exit.partner;
\r
50 var otherexit = enter.partner;
\r
51 otherenter.partner = otherexit;
\r
52 otherexit.partner = otherenter;
\r
53 if (enter.head.getYTop () < otherenter.head.getYTop ()) {
\r
54 enter.tail.setNext (otherenter.head);
\r
55 otherenter.head = enter.head;
\r
57 otherexit.tail.setNext (enter.head);
\r
58 otherexit.tail = enter.tail;
\r
60 }, "jssun.awt.geom.ChainEnd");
\r
61 Clazz.defineMethod (c$, "addLink",
\r
62 function (newlink) {
\r
63 if (this.etag == 1) {
\r
64 this.tail.setNext (newlink);
\r
65 this.tail = newlink;
\r
67 newlink.setNext (this.head);
\r
68 this.head = newlink;
\r
69 }}, "jssun.awt.geom.CurveLink");
\r
70 Clazz.defineMethod (c$, "getX",
\r
72 if (this.etag == 1) {
\r
73 return this.tail.getXBot ();
\r
75 return this.head.getXBot ();
\r